下载此文档

使用TCP协议实现文件传输.doc


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
使用TCP协议实现文件传输2013-01-1810:35:43    我来说两句     作者:hanchaoqi收藏  我要投稿使用TCP协议实现文件传输。程序会分为服务器端和客户端,首先运行服务器端,监听来自客户端的连接,客户端运行后会通过程序内的服务器端IP地址,向服务器发送连接请求。双方建立请求之后,客户端将所需文件的文件名和绝对路径传输给服务器,如果服务器找到此文件,则将此文件传输给客户端,然后断开连接。具体算法描述如下:【1】服务器端:1、初始化socket服务2、:按照路径找到文件,并打开。提取本地文件名,发回给客户端发送文件总长度给客户端case已准备接收文件完毕if发送缓冲区为空读取文件,写入缓冲区将文件流分成大小相同的组(最后一组可能会小一点),顺次发送给客户端将缓冲区清空case文件成功传送打印消息,退出case文件已存在打印消息,、释放socket服务【2】客户端:1、初始化socket,winsock服务2、连接服务器,,,向服务器发送连接请求,:重新发送文件绝对路径至服务器,请求重发case文件长度:打印消息case文件名:if文件已经存在发送“文件已经存在”else分配缓冲区,并向服务器发送“Ready”消息case文件流:为已接收文件名创建文件打开文件,将文件流数据写入文件,直至接收所有分组数据发送“成功接收“消息3、关闭套接字释放服务源程序:【1】服务器端:头文件:[cpp] /**/ #ment(lib,"WS2_32") #include<> #include<iostream> #include<> #include<> #MONDEF_H #MONDEF_H #defineMAX_PACKET_SIZE 10240  //数据包的最大长度,单位是sizeof(char) #defineMAXFILEDIRLENGTH256  //存放文件路径的最大长度 #definePORT  4096  //端口号 //#defineSERVER_IP  ""//server端的IP地址 //各种消息的宏定义 #defineINVALID_MSG   -1 //无效的消息标识 #defineMSG_FILENAME  1 //文件的名称 #defineMSG_FILELENGTH  2 //传送文件的长度 #defineMSG_CLIENT_READY  3 //客户端准备接收文件 #defineMSG_FILE   4 //传送文件 #ESS  5 //传送文件成功 #defineMSG_OPENFILE_ERROR  10 //打开文件失败,可能是文件路径错误找不到文件等原因 #defineMSG_FILEALREADYEXIT_ERROR11 //要保存的文件已经存在了 SDef { public: #pragmapack(1)   //使结构体的数据按照1字节来对齐,省空间 //消息头 structTMSG_HEADER { char  cMsgID;  //消息标识 TMSG_HEADER(charMsgID=INVALID_MSG) :cMsgID(MsgID) { } }; //请求传送的文件名 //客户端传给服务器端的是全路径名称 //服务器传回给客户端的是文件名 structTMSG_FILENAME:publicTMSG_HEADER { charszFileName[256]; //保存文件名的字符数组 TMSG_FILENAME() :TMSG_HEADER(MSG_FILENAME) { } }; //传送文件长度 structTMSG_FILELENGTH:publicTMSG_HEADER { longlLength; TMSG_FILELENGTH(longlength) :TMSG_HEADER(MSG_FILELENGTH),lLength(length)  { } }; //Client端已经准备好了,要求Server端开始传送文件 structTMSG_CLIENT_READY:publicTMSG_HEADER { TMSG_CLIENT_READY() :TMSG_HEADER(MSG_CLIENT_READY) { } }; //传送文件 structTMSG_FIL

使用TCP协议实现文件传输 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小30 KB
  • 时间2019-09-17