欢迎来到天天文库
浏览记录
ID:56810793
大小:325.50 KB
页数:7页
时间:2020-07-12
《简单TCP通信程序设计实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、简单TCP通信程序设计实验报告学校:华中科技大学学院:姓名:学号:同组人:一,实验目的初步掌握C++语言TCP/IP通信程序的设计。二,实验环境1、Windows7操作系统。2、编程工具:VisualStudio2010。三,实验框图WinSock通过流式套接字(SOCK_STREAM)提供TCP服务。通常服务器进程先启动,等待客户端的连接请求。其基基通信过程如下图1所示。四,实验内容与步骤(server)1,加载WinSock动态链接库函数原型:intWSAStartup(WORDwVersionRequested,LPWSADATAlp
2、WSAData);程序代码://加载WinSock.DllWSADATAwsaData;WORDwVersionRequested=MAKEWORD(2,2);if(WSAStartup(wVersionRequested,&wsaData)!=0){//WinSock初始化错误处理代码}2,创建套接字创建套接字的实质是请求操作系统分配通信所需要的资源(包括存储空间、网络资源、CPU时间等),用一个称为套接字描述符(socketdescriptor)的整数表示。函数原型:SOCKETsocket(intaf,inttype,intproto
3、col);程序代码://创建套接字SOCKETsock_client;if((sock_client=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET){cout<<"创建套接字失败!错误代码:"<4、/建立连接structsockaddr_inserver_addr;//用于存放要连接服务器的地址intaddr_len=sizeof(server_addr);//填写服务器地址memset((void*)&server_addr,0,sizeof(structsockaddr_in));server_addr.sin_family=AF_INET;server_addr.sin_port=htons(65432);server_addr.sin_addr.s_addr=inet_addr("127.0.0.1");//服务器IP地址//5、与服务器建立连接if(connect(sock_client,(structsockaddr*)&server_addr,sizeof(structsockaddr_in))!=0){cout<<"连接失败!错误代码:"<6、en,intflags);程序代码://接收数据charmsgbuffer[255];intsize;if((size=recv(sock_client,msgbuffer,sizeof(msgbuffer),0))==SOCKET_ERROR){cout<<"接收数据失败;错误代码:"<7、ntflags);程序代码://发送数据charmsgbuf[]="Themessagetobesent.";intsize;if((size=send(sock_client,msgbuf,sizeof(msgbuf),0))==SOCKET_ERROR){cout<<"发送数据失败;错误代码:"<8、);程序代码:closesocket(newsock);WSACleanup();五,实验结果,1,服务端调试成功exe文件截图:2,客户端调试成功exe文件截图六,实验总结1,
4、/建立连接structsockaddr_inserver_addr;//用于存放要连接服务器的地址intaddr_len=sizeof(server_addr);//填写服务器地址memset((void*)&server_addr,0,sizeof(structsockaddr_in));server_addr.sin_family=AF_INET;server_addr.sin_port=htons(65432);server_addr.sin_addr.s_addr=inet_addr("127.0.0.1");//服务器IP地址//
5、与服务器建立连接if(connect(sock_client,(structsockaddr*)&server_addr,sizeof(structsockaddr_in))!=0){cout<<"连接失败!错误代码:"<6、en,intflags);程序代码://接收数据charmsgbuffer[255];intsize;if((size=recv(sock_client,msgbuffer,sizeof(msgbuffer),0))==SOCKET_ERROR){cout<<"接收数据失败;错误代码:"<7、ntflags);程序代码://发送数据charmsgbuf[]="Themessagetobesent.";intsize;if((size=send(sock_client,msgbuf,sizeof(msgbuf),0))==SOCKET_ERROR){cout<<"发送数据失败;错误代码:"<8、);程序代码:closesocket(newsock);WSACleanup();五,实验结果,1,服务端调试成功exe文件截图:2,客户端调试成功exe文件截图六,实验总结1,
6、en,intflags);程序代码://接收数据charmsgbuffer[255];intsize;if((size=recv(sock_client,msgbuffer,sizeof(msgbuffer),0))==SOCKET_ERROR){cout<<"接收数据失败;错误代码:"<7、ntflags);程序代码://发送数据charmsgbuf[]="Themessagetobesent.";intsize;if((size=send(sock_client,msgbuf,sizeof(msgbuf),0))==SOCKET_ERROR){cout<<"发送数据失败;错误代码:"<8、);程序代码:closesocket(newsock);WSACleanup();五,实验结果,1,服务端调试成功exe文件截图:2,客户端调试成功exe文件截图六,实验总结1,
7、ntflags);程序代码://发送数据charmsgbuf[]="Themessagetobesent.";intsize;if((size=send(sock_client,msgbuf,sizeof(msgbuf),0))==SOCKET_ERROR){cout<<"发送数据失败;错误代码:"<8、);程序代码:closesocket(newsock);WSACleanup();五,实验结果,1,服务端调试成功exe文件截图:2,客户端调试成功exe文件截图六,实验总结1,
8、);程序代码:closesocket(newsock);WSACleanup();五,实验结果,1,服务端调试成功exe文件截图:2,客户端调试成功exe文件截图六,实验总结1,
此文档下载收益归作者所有