版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三TCPsocket编程1316-30-何珊珊[实验名称]:TCPsocket编程[实验器材]:与因特网连接的计算机网络系统;主机操作系统为Windows7;VC6[实验内容]:学生自由选择实验平台:windows平台或者linux平台,编程实现客户端和服务端的TCP链接,通讯内容学生姓名和学号。[实验步骤]:在VC6下建立两个工程,一个为TCPSrv,一个为TCPClient,并在工程->设置->连接中加入ws2_32.lib库;编写TCPSrv,代码如下:#include<Winsock2.h>#include<stdio.h>#include<errno.h>voidmain(){//用WSAStartup函数加载套接字库,并进行版本协商 WORDwVersionRequested; WSADATAwsaData; interr; wVersionRequested=MAKEWORD(2,2);//版本号 err=WSAStartup(wVersionRequested,&wsaData); if(err!=0){ /*Telltheuserthatwecouldnotfindausable*/ /*WinSockDLL.*/ return; } /*ConfirmthattheWinSockDLLsupports2.2.*/ /*NotethatiftheDLLsupportsversionsgreater*/ /*than2.2inadditionto2.2,itwillstillreturn*/ /*2.2inwVersionsincethatistheversionwe*/ /*requested.*/ if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2){ /*Telltheuserthatwecouldnotfindausable*/ /*WinSockDLL.*/ WSACleanup(); return; }//copy自msdn SOCKETsocketSrv=socket(AF_INET,SOCK_STREAM,0);//创建一个客户端的套接字 if((socketSrv=socket(AF_INET,SOCK_STREAM,0))==-1){perror("socket创建出错!"); exit(1); }sockaddr_inaddrSrv;//配置服务端地址信息addrSrv.sin_addr.S_un.S_addr=INADDR_ANY;//本机IP地址addrSrv.sin_family=AF_INET;//地址族addrSrv.sin_port=htons(3333);//端口号,并用htons装换成网络字节序bind(socketSrv,(structsockaddr*)&addrSrv,sizeof(structsockaddr));//将配置信息绑定到本地地址和端口上 listen(socketSrv,10);//将套接字设为监听模式,准备接受客户请求,最大可同时接受10个请求 if(listen(socketSrv,10)==-1){perror("listen出错!");exit(1); } while(1) {sockaddr_inaddrClient;//提出连接请求服务的主机的信息 intlen=sizeof(structsockaddr_in); SOCKETsocketConn=accept(socketSrv,(structsockaddr*)&addrClient,&len);//接受连接请求,返回一个对应于此连接的套接字 charrecvBuf[100]; recv(socketConn,recvBuf,100,0);//接收从客户端发来的信息,并存放在建立好的缓冲区内 printf("%s\n",recvBuf);//将接收的信息打印,这里打印的是客户端询问学号的请求 char*msg="heshanshan09211595";send(socketConn,msg,strlen(msg)+1,0);//将客户端询问的信息发送回去 charrrecvBuf[100];//接收从客户端发来的确认收到的信息 recv(socketConn,rrecvBuf,100,0); printf("%s\n",rrecvBuf); closesocket(socketConn);//处理完毕,关闭套接字 }}编写客户端代码,TCPClient:#include<Winsock2.h>#include<stdio.h>voidmain(){ //用WSAStartup函数加载套接字库,并进行版本协商,和服务端的都一样 WORDwVersionRequested; WSADATAwsaData; interr; wVersionRequested=MAKEWORD(2,2); err=WSAStartup(wVersionRequested,&wsaData); if(err!=0){ /*Telltheuserthatwecouldnotfindausable*/ /*WinSockDLL.*/ return; } /*ConfirmthattheWinSockDLLsupports2.2.*/ /*NotethatiftheDLLsupportsversionsgreater*/ /*than2.2inadditionto2.2,itwillstillreturn*/ /*2.2inwVersionsincethatistheversionwe*/ /*requested.*/ if(LOBYTE(wsaData.wVersion)!=2||HIBYTE(wsaData.wVersion)!=2){ /*Telltheuserthatwecouldnotfindausable*/ /*WinSockDLL.*/ WSACleanup(); return; } SOCKETsocketClient=socket(AF_INET,SOCK_STREAM,0);//创建套接字 sockaddr_inserv_addr;//配置服务端的地址信息 serv_addr.sin_addr.S_un.S_addr=inet_addr("59.64.157.9");//服务端的IP地址信息 serv_addr.sin_family=AF_INET; serv_addr.sin_port=htons(3333);//端口号,必须和服务端的保持一致 connect(socketClient,(structsockaddr*)&serv_addr,sizeof(structsockaddr));//与服务端进行连接 send(socketClient,"whatismystudentid?",strlen("whatismystudentid?")+1,0);//向服务器端发送请求信息printf("receivedaconnectionfrom%s\n",inet_ntoa(serv_addr.sin_addr));//打印服务器端的IP地址信息,这里是59.64.157.9 charrecvBuf[100]; recv(socketClient,recvBuf,100,0); printf("%s\n",recvBuf);//接收从服务端发来的学号信息 send(socketClient,"receivedsuccessful!",strlen("receivedsuccessful!")+1,0);//向服务端发送收到的确认信息 closesocket(socketClient);//关闭套接字 WSACleanup();//终止对套接字库的使用}编译程序:因为使用了WSAStartup函数,从MSDN知道需要加载一个ws2_32.lib的库以及#include<Winsock2.h>的头文件,并且在执行的时候要首先执行服务端的程序,使他保持开启状态再执行客户端的程序。显示结果:首先运行服务端:因为没有请求,所以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年长期股权投资协议
- 2024年简单煤炭买卖合同范本
- 2024年正规规范家具销售合同范本
- 河北行政职业能力2014年
- 2024年工厂设备转让合同范本
- 四川行政职业能力2011年(本硕类)
- 江西申论模拟81
- 2024年停车场租赁合同
- 2024年软件系统的销售合同范本
- 个人连带担保合同书2024年
- 2024-2030年中国超超临界发电机组行业现状动态与未来前景预测报告
- 市场营销学的题库
- 琉璃瓦安装施工合同
- (高清版)DB31∕T 1489-2024 农产品质量安全监督抽查抽样管理规范
- 餐饮业绩效考核表(店长、前厅领班、吧台、厨师长、后厨、服务员、收银员、库管、后勤)3
- 心脏心内膜肉瘤的药物治疗进展与展望
- 中医诊断学(湖南中医药大学)智慧树知到答案2024年湖南中医药大学
- 2024-2030年中国老化试验箱行业市场发展趋势与前景展望战略分析报告
- 医院信息保密协议(2024版)
- DL∕T 875-2016 架空输电线路施工机具基本技术要求
- 2024年浙江杭州西湖区投资促进局招聘编外合同制工作人员1人历年(高频重点提升专题训练)共500题附带答案详解
评论
0/150
提交评论