• 大小: 1.5MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-31
  • 语言: C/C++
  • 标签:

资源简介

本课程设计在Windows下用C/C++语言和socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c)。包含了TCP/IP协议基本通信原理,Winsock编程基本原理以及FTP工作原理。正文部分是程序设计的具体内容及其源代码,最后是报告反思及总结。

资源截图

代码片段和文件信息

#include “client.h“
#include “ui_client.h“
#include “Winsock.h“
#include “windows.h“
#include “stdio.h“
#include “time.h“
#include 
#include 
using namespace std;
#define RECV_PORT 3312
#define SEND_PORT 4302
#pragma comment(lib “wsock32.lib“)


Client::Client(QWidget *parent) :
    QMainWindow(parent)
    ui(new Ui::Client)
{
    ui->setupUi(this);

//    ui->lbl_Message->setGeometry(QRect(32824032927*4));
//    ui->lbl_Message->setWordWrap(true);
//    ui->lbl_Message->setAlignment(Qt::AlignTop);     //label 自适应大小并换行
    QPalette palette;
    palette.setBrush(/*QPalette::Background*/this->backgroundRole()QBrush(QPixmap(“:/image/1jpg.jpg“)));
    this->setPalette(palette);                      //设置背景图片

    help();
    qDebug(“请输入要连接的IP地址“);
//    mainslot();
}

Client::~Client()
{
    delete ui;
}

void Client::help()  //操作说明
{
    qDebug() << “                         欢迎进入迷你FTP帮助菜单              “ << endl
            << “                  * * * * * * * * * * * * * * * * * * * * *       “ << endl
            << “                  *1.get....................下载(接受)文件*       “ << endl
            << “                  *get的用法: get 文件名                  *       “ << endl
            << “                  *2.put....................上传(发送)文件*       “ << endl
            << “                  *put的用法:put 文件名                  *       “ << endl
            << “                  *3.pwd..........显示当前文件夹的绝对路径*       “ << endl
            << “                  *4.dir............显示远方当前目录的文件*       “ << endl
            << “                  *5.cd.............改变远方当前目录和路径*       “ << endl
            << “                  *cd的用法(进入下级目录): cd 路径名      *       “ << endl
            << “                  *cd的用法(进入上级目录): cd ..          *       “ << endl
            << “                  *6.?或者help................进入帮助菜单*       “ << endl
            << “                  *7.quit..........................退出FTP*       “ << endl
            << “                  * * * * * * * * * * * * * * * * * * * * *       “ << endl;


}

void Client::list(SOCKET sockfd)
{
    int nRead;
    while (true)
    {
        nRead = recv(sockclient rbuff 1024 0);
        //recv函数通过sockclient套接口接受数据存入rbuff缓冲区,返回接受到的字节数
        if (nRead == SOCKET_ERROR)
        {
//            ui->lbl_Message->setText(“read response error!\n“);
            exit(1);
        }
        if (nRead == 0)//数据读取结束
            break;
        //显示数据
        rbuff[nRead] = ‘\0‘;
//        ui->lbl_Message->setText( rbuff);
    }
}

int Client::SendFile(SOCKET datatcps FILE* file)//发送文件,处理put命令
{
//     ui->lbl_Message->setText(“ sending file data..“);
     qDebug(“ sending file data..“);
    for (;;)  //从文件中循环读取数据并发送客户端
    {
        int r = fread(sbuff 1 1024 file);//fread函数从file文件读取1个1024长度的数据到sbuff,返回成功读取的元素个数
        if (send(datatcps sbuff r 0) == SOCKET_ERROR)
        {
//             ui->lbl_Message

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9490  2017-06-07 11:25  计算机网络课设代码+报告\代码\client\client.cpp

     文件        996  2017-06-01 19:32  计算机网络课设代码+报告\代码\client\client.h

     文件        433  2017-06-01 16:49  计算机网络课设代码+报告\代码\client\client.pro

     文件      23824  2017-06-07 17:31  计算机网络课设代码+报告\代码\client\client.pro.user

     文件       9199  2017-06-07 11:25  计算机网络课设代码+报告\代码\client\client.ui

     文件     285805  2017-06-01 16:20  计算机网络课设代码+报告\代码\client\image\1jpg.jpg

     文件      11281  2017-06-01 16:20  计算机网络课设代码+报告\代码\client\image\2.jpg

     文件      12229  2017-06-01 16:21  计算机网络课设代码+报告\代码\client\image\3.jpg

     文件      38056  2017-06-01 16:21  计算机网络课设代码+报告\代码\client\image\4.jpg

     文件      51665  2017-06-01 16:21  计算机网络课设代码+报告\代码\client\image\5.jpg

     文件      32600  2017-06-01 16:22  计算机网络课设代码+报告\代码\client\image\6.jpg

     文件        502  2017-06-02 15:20  计算机网络课设代码+报告\代码\client\main.cpp

     文件        268  2017-06-01 16:50  计算机网络课设代码+报告\代码\client\resource.qrc

     文件      72704  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\Debug\FTPClient.exe

     文件     409332  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\Debug\FTPClient.ilk

     文件     921600  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\Debug\FTPClient.pdb

     文件       7065  2017-06-08 13:51  计算机网络课设代码+报告\代码\FTPClient\FTPClient\client.cpp

     文件     170693  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\client.obj

     文件        685  2017-09-08 16:53  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\FTPClient.log

     文件       1602  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\FTPClient.tlog\cl.command.1.tlog

     文件      48572  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\FTPClient.tlog\CL.read.1.tlog

     文件        876  2017-09-08 16:53  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\FTPClient.tlog\CL.write.1.tlog

     文件        250  2017-09-08 16:53  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\FTPClient.tlog\FTPClient.lastbuildstate

     文件       2674  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\FTPClient.tlog\link.command.1.tlog

     文件       2926  2017-09-08 16:53  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\FTPClient.tlog\link.read.1.tlog

     文件        850  2017-09-08 16:53  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\FTPClient.tlog\link.write.1.tlog

     文件    1248256  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\vc120.idb

     文件     430080  2017-09-08 16:51  计算机网络课设代码+报告\代码\FTPClient\FTPClient\Debug\vc120.pdb

     文件       4112  2017-06-08 13:53  计算机网络课设代码+报告\代码\FTPClient\FTPClient\FTPClient.vcxproj

     文件        947  2017-06-08 13:51  计算机网络课设代码+报告\代码\FTPClient\FTPClient\FTPClient.vcxproj.filters

............此处省略43个文件信息

评论

共有 条评论