- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP文件传输实验
TCP文件传输
Client
#include stdafx.h
#pragma comment(lib,ws2_32.lib)
#include Winsock2.h
#includestdio.h
#include string.h
#includememory.h
#define MAX_BUF 65535
int main()
{WSAData wsaData;
int err=WSAStartup(WINSOCK_VERSION,wsaData);
if(0!=err)
{return -1;}
SOCKET sock=socket(AF_INET,SOCK_STREAM,0);
if(INVALID_SOCKET == sock)
{printf(socket() Failed:%d\n,WSAGetLastError());
WSACleanup();return -1;}
sockaddr_in ServerAddr;
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(20000);
ServerAddr.sin_addr.S_un.S_addr=inet_addr(172.17.194.8);
err = connect(sock,(sockaddr *)ServerAddr, sizeof(ServerAddr));
if(SOCKET_ERROR==err)
{printf(connect()Failed:%d\n,WSAGetLastError());
closesocket(sock);WSACleanup();return -1;}
char data[]={0};
printf(请输入文件名:(如D:\\1.txt)\n);
gets(data);
int sByte=send(sock,data,strlen(data),0);
if(SOCKET_ERROR==sByte)
{printf(send()Faild:%d\n,WSAGetLastError());
closesocket(sock);WSACleanup();return -1;}
shutdown(sock,SD_SEND);
char rbuff[MAX_BUF];
char path[20]={0};
printf(请输入写入文件路径:(如:D:\\2.txt)\n);
gets(path);
FILE *fp=fopen(path,wb);
if(!fp)
{printf(打开文件失败!);return 1;}
else{printf(文件已经打开,等待传输...\n);}
while(1)
{memset(rbuff,0,MAX_BUF);
int rByte=recv(sock,rbuff,MAX_BUF,0);
if(SOCKET_ERROR==rByte)
{printf(recv()Faild:%d\n,WSAGetLastError());
closesocket(sock);WSACleanup();return -1;}
if(0==rByte)
{printf(Connection is closed.\n);
break;}
fwrite(rbuff,1,MAX_BUF,fp);
printf(写入的文件内容为:\n %s\n,rbuff);}
fclose(fp);
closesocket(sock);
WSACleanup();
return 0;
}
server
#include stdafx.h
#pragma comment(lib,ws2_32.lib)
#include Winsock2.h
#includestdio.h
#include string.h
#includememory.h
#define MAX_BUF 65535
int _tmain(int argc, _TCHAR* argv[])
{WSAData wsaData;
int err=WSAStartup(WINSOCK_VERSION,wsaData);
if(0!=err){return -1;}
SOCKET sock=socket(AF_INET,SOCK_STREAM,0);
if(INVALID_SOCKET == sock)
{printf(socket() Failed:%d\n,WSAGetLastError());
WSACleanup();return -1;}
sockadd
您可能关注的文档
- S1-2设计总说明1.doc
- S120抱闸控制说明.doc
- S13重要环境因素清单20101018.doc
- S2-16-3标志设置一览表.doc
- S2-1路线说明1.doc
- S--1设计说明.doc
- S2A2风机施工记录.doc
- S21101说明.doc
- S101绥阳县太白至母猪坝公路改建工程地质总说明1024.doc
- S3-13简支说明.doc
- 英语人教PEP版八年级(上册)Unit4+writing+写作.pptx
- 人美版美术四年级(上册)8 笔的世界 课件 (1).pptx
- 人美版美术七年级(上册)龙的制作.pptx
- 英语人教PEP版六年级(上册)Unit 2 第一课时.pptx
- 数学苏教版三年级(上册)3.3 长方形和正方形周长的计算 苏教版(共12张PPT).pptx
- 音乐人教版八年级(上册)青春舞曲 课件2.pptx
- 音乐人教版四年级(上册) 第一单元 音乐知识 附点四分音符|人教版.pptx
- 英语人教PEP版四年级(上册)Unit 6 Part B let's learn 1.pptx
- 道德与法治人教版二年级(上册)课件-3.11大家排好队部编版(共18张PPT).pptx
- 人美版美术七年级(上册)《黄山天下奇》课件1.pptx
文档评论(0)