1 / 11
文档名称:

简单TCP通信程序设计实验报告.docx

格式:docx   大小:191KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

简单TCP通信程序设计实验报告.docx

上传人:buzaiwuzhuang123 2020/3/17 文件大小:191 KB

下载得到文件列表

简单TCP通信程序设计实验报告.docx

文档介绍

文档介绍:简单TCP通信程序设计实验报告学校:华中科技大学学院:姓名:学号:同组人:一,实验目的初步掌握C++语言TCP/IP通信程序的设计。二,实验环境Windows7操作系统。编程工具:VisualStudio2010。三,实验框图WinSock通过流式套接字(SOCK_STREAM)提供TCP服务。通常服务器进程先启动,等待客户端的连接请求。其基基通信过程如下图1所示。四,实验内容与步骤(server)1,加载WinSock动态链接库函数原型:intWSAStartup(WORDwVersionRequested,LPWSADATAlpWSAData);程序代码://;WORDwVersionRequested=MAKEWORD(2,2);if(WSAStartup(wVersionRequested,&wsaData)!=0){//WinSock初始化错误处理代码}2,创建套接字创建套接字的实质是请求操作系统分配通信所需要的资源(包括存储空间、网络资源、CPU时间等),用一个称为套接字描述符(socketdescriptor)的整数表示。函数原型:SOCKETsocket(intaf,inttype,intprotocol);程序代码://创建套接字SOCKETsock_client;if((sock_client=socket(,SOCK_STREAM,0))==INVALID_SOCKET){cout<<"创建套接字失败!错误代码:"<<WSAGetLastError()<<endl;WSACleanup();return1;}3,建立连接客户端则在创建套接字后,调用connect建立请求。函数发起连接函数原型:intconnect(SOCKETs,conststructsockaddr*name,intnamelen);程序代码://建立连接structsockaddr_inserver_addr;//用于存放要连接服务器的地址intaddr_len=sizeof(server_addr);//填写服务器地址memset((void*)&server_addr,0,sizeof(structsockaddr_in));=;=htons(65432);=inet_addr("");//服务器IP地址//与服务器建立连接if(connect(sock_client,(structsockaddr*)&server_addr,sizeof(structsockaddr_in))!=0){cout<<"连接失败!错误代码:"<<WSAGetLastError()<<endl;closesocket(sock_client);WSACleanup();return1;}else{//接收数据}4,发送和接收数据发送和接收数据分别使用send和recv函数。(1)recv函数原型:intrecv(SOCKETs,constchar*buf,intlen,intflags);程序代码://接收数据charmsgbuffer[255];intsize;if((size=recv(sock_client,msgbuffer,sizeof(msgbuffer),0))==SOCKET_ERROR){cout<<"接收数据失败;错误代码:"<<WSAGetLastError()<<endl;}else{cout<<"接收到的数据:"<<msgbuffer<<endl;//显示从服务端接收的数据}(2)send函数原型:intsend(SOCKETs,constchar*buf,intlen,intflags);程序代码://发送数据charmsgbuf[]="Themessagetobesent.";intsize;if((size=send(sock_client,msgbuf,sizeof(msgbuf),0))==SOCKET_ERROR){cout<<"发送数据失败;错误代码:"<<WSAGetLastError()<<endl;}else{closesocket(sock_client);WSACleanup();}5,关闭套接字通信完成后,程序退出前应关闭套接字。函数原型:intclosesocket(SOCKETs);程序代码:closesocket(newsock);WSACleanup();五,实验结果,1,服务端调试成功exe文件截图:2,客户端调试成功exe文件截图六,实验总结1,编写client程序时遇到的问题