预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

计算机网络课程试验报告 2011年 实验二网络程序设计 基于Socket程序使用TCP/UDP进行文件传输程序设计,训练学员对网络协议层次之间接口关系的理解;学习Client-Server分布式应用软件结构和工作原理,为以后应用系统的开发打好基础;训练使用Java或C语言进行网络程序开发,掌握程序开发的工具和环境;学习网络性能实验的基本方法。 实验2.1基于TCP的网络程序设计 2.1.2软件设计、实现和测试 一、概述 用socket编程实现Client-Server模式的基于TCP协议的文件传输程序,并且服务器端能支持多个客户同时传输数据。最后完成可靠性和吞吐量的评估。 二、软件的功能 使用基于TCP的Socket系统调用,从客户端向服务器端进行文件传输。 编写客户端程序和服务器端的文件读写和收发程序。 服务器端要支持多个客户端同时传输数据。 进行TCP传输的可靠性和吞吐量实验。 客户机 服务器 三、软件的系统结构 发送数据 返回数据 四、软件的实现 开发的环境:Windowsxp;Inter(R)Core(TM)2DuoCPUT6500@2.00GHz 源代码: Client: #include"stdio.h" #include"afxmt.h" #include"winsock2.h" #pragmacomment(lib,"WS2_32.LIB") classmclient{ private: SOCKETsock; sockaddr_insaddr; intlen; charbuf[4096]; public: mclient(){ sock=socket(AF_INET,SOCK_STREAM,0); len=sizeof(saddr); } boolmconnect(char*addr,intport){ saddr.sin_family=AF_INET; saddr.sin_port=htons(port); saddr.sin_addr.s_addr=inet_addr(addr); if(connect(sock,(structsockaddr*)&saddr,len)==SOCKET_ERROR){ printf("connectfail:%d",WSAGetLastError()); returnfalse; } returntrue; } voidclose(){ closesocket(sock); } voidmsend(char*mes){ send(sock,mes,strlen(mes),0); } boolreceive(){ memset(buf,0,4096); if(recv(sock,buf,4096,0)==SOCKET_ERROR){ returnfalse; } else{ printf("receivedfromserver:%s\n",buf); returntrue; } } }; intmain() { WSADATAwsaData; if(WSAStartup(MAKEWORD(2,1),&wsaData)){ printf("Winsockinitializingfail\n"); WSACleanup(); return0; } mclienta; if(!a.mconnect("192.168.0.66",12345)){ return0; } charbuf[1024]; while(scanf("%s",buf)){ if(strcmp(buf,"quit")==0){ break; } a.msend(buf); a.receive(); } a.close(); WSACleanup(); return0; } Server: #include"afxmt.h" #include"winsock2.h" #pragmacomment(lib,"WS2_32.LIB") #defineMAXCLIENT10 intbufi; classmserver{ public: SOCKETssock,csock; sockaddr_insaddr,caddr; intlen; charbuf[4096]; public: mserver(){ } mserver(intport,intmaxclient){ saddr.sin_family=AF_INET; saddr.sin_port=htons(port); saddr.sin_addr.s_addr=INADDR_ANY; ssock=socket(AF_INET,SOCK_STREAM,0); if(ssock==