资源描述:
《TCPIP协议实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、TCPIP协议实验报告一实验名称:基于TCP的客户、服务器通信程序组员:潘誉谢陈洁实验时间:2014-3-11二实验目的:通过此次实例对网络程序的基本框架有个比较清楚的认识,为后面设计比较复杂的网络程序打好基础。三实验内容本程序使用了visualc++6.0下的控制台程序“win32consoleapplication”。控制台程序结构一目了然。该程序中通信协议使用的是面向连接的TCP协议,服务端的IP地址使用系统指定的IP地址,端口号在程序中指定为5050,用符号常量来定义。服务器端的功能是只要有客户请求连接,服务器就接受连接,在连
2、接成功后,服务器就向请求连接的客户端发送内容,如果发送过程正确完成,则显示所发送的字节数。客户端功能是向服务器发出连接请求,在连接成功后,接受并显示从服务端收到的信息。四程序清单服务器端代码//TcpServer.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include#include#include#defineDEFAULT_PORT5050#defineBUF_SIZE1
3、024voidmain(intargc,char*argv[]){//printf("HelloWorld!");//return0;intiPort=DEFAULT_PORT;WSADATAwsaData;SOCKETsListen,sAccept;intiLen;intiSend;charbuf[]="Iamaserver.";structsockaddr_inser,cli;charreceiver[BUF_SIZE];charusername[BUF_SIZE];memset(receiver,0,sizeof(recei
4、ver));memset(username,0,sizeof(username));printf("-----------------------");printf("Serverwaiting");printf("-----------------------");if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0){printf("FailedtoloadWinsock.");return;}sListen=socket(AF_INET,SOCK_STREAM,0);if(sListe
5、n==INVALID_SOCKET){printf("socket()Failed:%d",WSAGetLastError());return;}ser.sin_family=AF_INET;ser.sin_port=htons(iPort);ser.sin_addr.s_addr=htonl(INADDR_ANY);if(bind(sListen,(LPSOCKADDR)&ser,sizeof(ser))==SOCKET_ERROR){printf("bind()Failed:%d",WSAGetLastError());r
6、eturn;}if(listen(sListen,5)==SOCKET_ERROR){printf("listen()Failed:%d",WSAGetLastError());return;}iLen=sizeof(cli);while(1){sAccept=accept(sListen,(structsockaddr*)&cli,&iLen);if(sAccept==INVALID_SOCKET){printf("accept()Failed:%d",WSAGetLastError());break;}printf("Ac
7、ceptedclientIP:[%s],port:[%d]",inet_ntoa(cli.sin_addr),ntohs(cli.sin_port));iSend=send(sAccept,buf,sizeof(buf),0);if(iSend==SOCKET_ERROR){printf("send()Failed:%d",WSAGetLastError());break;}elseif(iSend==0){break;}else{printf("send()byte:%d",iSend);printf("--------
8、------------");}iLen=recv(sAccept,username,sizeof(username),0);if(iLen==0){return;}elseif(iLen==SOCKET_ERROR