




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、实验题目:使用Select模型的网络程序设计二、实验目的 熟悉使用select模型进行网络程序设计。三、实验环境硬件环境:奔3以上处理器,512MB以上内存空间软件环境:windows2000以上操作系统,VC6.0编译环境。四、实验内容与完成情况使用select对实验1的程序进行重新设计。1. 使用TCP建立一个服务器和和客户端,客户端可以连接服务器,并向服务器发送数据,服务器收到数据后把数据打印出来并传给客户端。客户端接收后再打印出来。客户端发送数据可以从键盘读入。2. 上述过程使用UDP重复一遍。完成情况:我完成了TCP跟UDP的设计。TCP服务端的设计步骤:首先应该创建套接口,确定协议类型,然后将套接口跟本地地址绑定,进行监听,等待客户端连接的请求的到来,然后准备接收数据,交换数据,把数据返回给客户端,最后关闭TCP连接,关闭服务器。但是要用select模型,首先定义select函数中的变量,设置参数值:fd_set rfd;FD_ZERO(&rfd);struct timeval timeout;timeout.tv_sec=10;timeout.tv_usec=0;u_long ul=1;ioctlsocket(sock2,FIONBIO,&ul);FD_SET(sock2,&rfd);然后就在循环中加入select函数,并给出可能出现的实验结果。int ret=select(0,&rfd,NULL,NULL,&timeout);if (ret=0)printf(time is over!);break;else if (SOCKET_ERROR=ret)printf(SOCKET ERROR!);break;elsememset(rebuff,0,1000);count=recv(sock,rebuff,1000,0);if (count0) break;if(count=0) break; printf(rebuff);TCP客户端的设计步骤:创建套接口,建立连接,跟服务端发送请求,接收数据然后关闭TCP连接,关闭客户端。/地址初始化sai.sin_family=AF_INET;sai.sin_port=htons(4777);sai.sin_addr.s_addr=inet_addr(127.0.0.1);客户端跟服务器端代码基本是一样的:int ret=select(0,&rfd,NULL,NULL,&timeout);if (ret=0)/判断连接是否超时printf(time is over!);break;else if (SOCKET_ERROR=ret)printf(SOCKET ERROR!);break;elsememset(rebuff,0,1000);count=recv(sock,rebuff,1000,0);if (count0) break;if(count=0) break; printf(rebuff);运行结果:UDP发送端:不需要建立连接,发送端步骤:创建套接字后,地址初始化,发送信息,然后关闭套接字。基本变量设置fd_set rfd;struct timeval timeout;timeout.tv_sec=30;timeout.tv_usec=0;FD_ZERO(&rfd);u_long ul=1;int ret;ioctlsocket(sock,FIONBIO,&ul);FD_SET(sock,&rfd); 循环中的语句:scanf(%s,buff);int count=sendto(sock,buff,strlen(buff)+1,0,(struct sockaddr *)&sai,sizeof(sai);ret=select(0, &rfd, NULL, NULL, &timeout); if (ret=0)printf(time is over!);break;else if (SOCKET_ERROR=ret)printf(select error!);break;elsememset(buff,0,1000);/count=recv(sock,buff,1000,0);count=recvfrom(sock,buff,100,0,(struct sockaddr *)&sai,&len);if(count0) break;if(count=0) break;printf(buff);printf(n);接收端:创建套接字,地址初始化,绑定套接字跟端口,接受信息,打印出数据,关闭套接字。sai.sin_addr.s_addr=htonl(INADDR_ANY);bind(sock,(struct sockaddr *)&sai,sizeof(sai);while (1)char buffer100;int len=sizeof(sai);int count=recvfrom(sock,buffer,20,0,(struct sockaddr *)&sai,&len);printf(buffer);fd_set rfd;/fd_set wfd;struct timeval timeout;timeout.tv_sec=30;timeout.tv_usec=0;FD_ZERO(&rfd);u_long ul=1;int ret;循环:ret=select(0, &rfd,NULL, NULL, &timeout); if (ret=0)printf(time is over!);break;else if (SOCKET_ERROR=ret)printf(select error!);break;else/初始化 buff/memset(buff,0,1000);/count=recv(sock2,buff,1000,0);int count=recvfrom(sock,buffer,100,0,(struct sockaddr *)&sai,&len);if(count0) break;if(count=0) break;printf(buffer);printf(n);sendto(sock,buffer,strlen(buffer)+1,0,(struc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 停车场监控施工方案
- 绿化养护招标方案范本
- 仿古水磨石地面施工方案
- 浆嵌卵石路面施工方案
- 空调管井立管施工方案
- 装修施工方案的要求包括
- 企业品牌推广方案设计要点
- 徐州食品安全员考试题库及答案解析
- 不锈钢铠装施工方案
- 库房管理工作汇报
- 2025年度哈尔滨市平房区纪委监委公开招聘雇员2人考试参考题库及答案解析
- 情绪管理课2025年职场压力释放与心灵成长分析报告
- 2025年征地拆迁考试题及答案
- 巡游出租车考试题及答案
- 2025至2030中国方竹笋市场经营方向与竞争格局分析报告
- 2025年人教版三年级数学上册《混合运算》教案
- 2025医用眼科器械消毒处理标准流程
- 胸部穿刺教学课件
- 2025-2026学年苏教版(2024)小学科学三年级上册(全册)课时练习及答案(附目录P102)
- 食材配送培训计划
- 2025-2026学年人教版小学数学六年级上册教学计划及进度表
评论
0/150
提交评论