已阅读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年工程造价咨询实务考试(3D扫描技术在造价复核中的应用)考核试卷
- 2025年化妆品行业品牌营销策略研究报告及未来发展趋势预测
- 2025年农业行业智能农机装备应用研究报告及未来发展趋势预测
- 2025年交通行业城市交通智能化技术应用研究报告及未来发展趋势预测
- 2025年航空航天行业空中交通管理技术研究报告及未来发展趋势预测
- 2025年网约车平台司机准入审核不严整治考核试卷
- 2025年互联网行业互联网行业数字化转型与平台经济研究报告及未来发展趋势预测
- 2025金融监管法规实务应用考核试卷
- 智能工厂库存优化系统规划与设计考核试卷
- 2025辽宁农业职业技术学院面向社会招聘高层次人才2人(第三批)考试笔试模拟试题及答案解析
- 文旅融合下的艺术IP开发-洞察及研究
- 四年级上册快乐读书吧重点知识归纳
- 低压柜培训课件
- 中国五音课件
- 从历史沉淀到现代传承:哈尔滨手风琴发展脉络探究
- 数字化转型对应用型人才培养体系的挑战
- 病原微生物实验室活动风险评估报告
- 普通高中英语课程标准词汇表
- 2025国家开放大学《员工劳动关系管理》形考任务1234答案
- 割灌机培训试题及答案
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读
评论
0/150
提交评论