资源简介
本课程设计在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\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个文件信息
相关资源
- 使用ARP协议获取局域网内部活动主机
- 计算机网络课程实验:FTP协议的实现
- 计算机网络课程设计 IP数据报的捕获
- 发送ARP请求
- 计算机网络实验-----基于TCP的网络聊天
- 计算机网络课程设计农大socket实现F
- C++实现简单聊天应用
- VS2017实现Tcp socket多线程通信C++
- 计算机网络课程设计,实现简单的聊
- 基于MFC编写的FTP客户端(使用VS)
- 基于GBN的可靠数据传输
- 计算机端口扫描器计算机网络课程设
- 用C语言实现Socket模拟TCP协议
- 用C++/MFC实现P2P和群聊功能的聊天小软
- 计算机网络原理知识点总结
- VS2017实现Tcp socket通信C++
- DNS中继服务器(含详细实验文档)
- 计算机网络编程vc++学生管理系统
- 计算机网络课设之解析ARP数据包
- 计算机网络作业-winsock写的ping实现
- 路由器分组转发算法_计算机通信课程
- 计算机网络滑动窗口实验
- C语言实现简单的web服务器
- 计算机网络实验——链路状态路
- 计算机网络课程设计多人聊天室
- 计算机网络.第五版.谢希仁
- 《计算机网络原理(2018版)》pdf电子
- 2018版《计算机网络原理》习题参考答
- FTP客户端 计算机网络实验
- 计算机网络csma/cd协议
评论
共有 条评论