資源簡介
本課程設計在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幫助菜單??????????????“?<????????????<“??????????????????*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*???????“?<????????????<“??????????????????*1.get....................下載(接受)文件*???????“?<????????????<“??????????????????*get的用法:?get?文件名??????????????????*???????“?<????????????<“??????????????????*2.put....................上傳(發送)文件*???????“?<????????????<“??????????????????*put的用法:put?文件名??????????????????*???????“?<????????????<“??????????????????*3.pwd..........顯示當前文件夾的絕對路徑*???????“?<????????????<“??????????????????*4.dir............顯示遠方當前目錄的文件*???????“?<????????????<“??????????????????*5.cd.............改變遠方當前目錄和路徑*???????“?<????????????<“??????????????????*cd的用法(進入下級目錄):?cd?路徑名??????*???????“?<????????????<“??????????????????*cd的用法(進入上級目錄):?cd?..??????????*???????“?<????????????<“??????????????????*6.?或者help................進入幫助菜單*???????“?<????????????<“??????????????????*7.quit..........................退出FTP*???????“?<????????????<“??????????????????*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*???????“?<
}
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\li
?????文件???????2926??2017-09-08?16:53??計算機網絡課設代碼+報告\代碼\FTPClient\FTPClient\Debug\FTPClient.tlog\li
?????文件????????850??2017-09-08?16:53??計算機網絡課設代碼+報告\代碼\FTPClient\FTPClient\Debug\FTPClient.tlog\li
?????文件????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個文件信息
評論
共有 條評論