电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

TCP协议实现文件传输VIP免费

TCP协议实现文件传输_第1页
1/11
TCP协议实现文件传输_第2页
2/11
TCP协议实现文件传输_第3页
3/11
TCP 协议实现文件传输 使用TCP 协议实现传输文件 程序分为发送端和接收端。首先在传输文件数据之前,发送端会把将装有文件名称和文件长度等 信息的数据包发送至接收端。接收端收到文件名称和文件长度信息后会创建好空白文件。接着开始传输 文件数据。下面介绍实现功能的主要过程: 1.创建套接字、绑定、监听、连接、接受连接 //创建TCP 协议的套接字 m_Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(SOCKET_ERROR == m_Socket) AfxMessageBox("Create Socket Error! ", 0, 0); //绑定与监听 SOCKADDR_IN addrSrv; addrSrv.sin_addr.s_addr = inet_addr(sIP); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(Port); int ret = bind(m_Socket, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR)); if(ret==SOCKET_ERROR) AfxMessageBox("Bind Socket Error!", 0, 0); //连接 SOCKADDR_IN ServerAddr; ServerAddr.sin_addr.s_addr = inet_addr(ServerAddr_in); ServerAddr.sin_family = AF_INET; ServerAddr.sin_port = htons(ServerPort); int Result = connect(m_Socket, (struct sockaddr*)&ServerAddr, sizeof(struct sockaddr)); if(SOCKET_ERROR == Result) AfxMessageBox("Connet Failed!"); //接受连接 SOCKADDR_IN ClientAddr; int len = sizeof(SOCKADDR_IN); SOCKET ClientSock = accept(m_Socket, (struct sockaddr*)&ClientAddr, &len); if(SOCKET_ERROR == ClientSock) AfxMessageBox("Accept Failed!"); 2.声明宏和结构体 声明套接字缓冲区和一次发送文件数据的缓冲区大小 #define SOCKET_BUFF 80000 //套接字缓冲区大小 #define PACK_BUFF 50000 //数据包缓冲区大小 声明文件 I/O 缓冲区和最大文件路径长度 #define FILE_NAME_MAX 100 //文件路径最大长度 #define FILE_IO_BUFF PACK_BUFF //文件 IO 缓冲区 //文件信息 typedef struct _FileInfor { u_long ulFileLen; char sFileName[ FILE_NAME_MAX ]; }_FileInfor; //数据包 typedef struct _DataPack { char cType; //'D'为数据 'M'为文件信息 int nPackLen; char sContent[ PACK_BUFF ]; //数据包缓冲区 u_long nPosition; //数据在文件中的位置 int nContentLen; //数据字节数 _FileInfor FileInfor; /...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

TCP协议实现文件传输

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部