- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子科技大学通信学院
《网络软件设计实验报告》
阻塞与非阻塞
班 级
学 生
学 号
教 师
阻塞与非阻塞实验
【实验目的】
体会非阻塞套接字的非阻塞效果;
体会阻塞套接字对多路复用流程的影响;
体会select中设置超时时间对系统性能的影响,(在selelct中设置超时时间实际上是进入一种既不是完全阻塞,又不是持续空转的“半阻塞”状态);
掌握阻塞套接字和非阻塞套接字不同情况下的程序设计思想。
【实验环境】
两人一组实验
【实验原理】
(包括多路复用的概念、实现方法和关键技术)
【实验方法】
调试程序的同时利用任务管理器观察在阻塞状态、非阻塞状态和“半阻塞”状态下,系统CPU利用率。
【实验步骤】
1、非阻塞套接字
1.1打开非阻塞套接字服务器工程,调试服务器。
阅读程序,不难发现服务器工作的套接字已经通过ioctlsocket()设置为非阻塞状态。
1.2单步调试服务器,观察在非阻塞套接字在没有客户机连接时,accept的返回值 ,错误代码 和类型 ;
1.3启动客户机连接服务器,继续单步调试服务器,观察服务器在客户机没有传送数据时,recv的返回值 ,错误代码 和类型 。
1.4设计非阻塞方式下的循环流程,使服务器在没有客户连接时,不断查询客户的连接(即“忙等”的流程);
请记录服务器“忙等”查询客户机连接的程序段:
1.5在连接建立后,也设计类似的循环流程,让服务器不断查询客户的数据。
请记录服务器“忙等”查询客户机送来数据的程序段:
1.6将服务器执行起来(即不再单步调试),使用windows系统任务管理器(按Ctrl+Shift+Del键),观察性能窗口的CPU使用率几十秒钟。
请记录在没有客户连接的情况下服务器的CPU使用率: 。
1.7启动客户机连接服务器,观察客户机与服务器之间是否能够正常通信: 。使用windows系统任务管理器,观察在有客户连接的情况下服务器的CPU使用率: 。
1.8将套接字设为非阻塞状态的语句注释,即设置套接字为默认的阻塞状态,重复1.6和1.7步骤,对比阻塞和非阻塞流程对系统性能的影响。
请记录请记录在没有客户连接的情况下阻塞服务器的CPU使用率: 。
请记录在有客户连接的情况下阻塞服务器的CPU使用率: 。
我们可以明显观察到虽然从程序执行功能的角度,阻塞套接字上服务器和非阻塞但“忙等”的服务器没有什么不同,但系统的性能则大不相同。
2、阻塞套接字
打开阻塞的server工程。阅读程序,我们可以发现该服务器是基于select设计的,但套接字都是阻塞状态,本实验环节就是要测试阻塞套接字对select查询机制的影响。
进一步观察服务器程序,可以看到在处理recv事件时,程序在最后又执行了一次recv。因此当服务器连接一个客户机,并接收了所有数据以后,如果客户机没有发送新的数据,服务器会因为没有接收到数据而在第二条recv指令处阻塞。
2.1单步调试阻塞的服务器程序,程序是否会在accept函数处阻塞: 。
2.2将服务器执行起来,启动一个客户机,观察该客户机能否获得服务器的服务: 。(注意,多传输几次数据试试)
2.3再启动一个客户机,观察该客户机能否获得服务器的服务: 。
请记录实验现象:(使用两个客户机多传几次数据,然后关闭客户机,观察整个过程的现象)
思考,造成以上现象的原因。
2.4对比实验:将套接字设为非阻塞状态。观察同时用多个客户机连接服务器,能否同时获得服务。实验现象与2.3是否有不同: 。
注意,本实验环节似乎是故意多执行了一次recv而造成不同的结果。不过,在一般的设计中,由于接收方无法预知对方发送数据的数量,为了将对方的数据全部接收下来,往往采用循环的方式多次接收,直到将缓冲区内当前的数据提取一空,如:
while(retval 0 ){
retval = recv( … );
……
}
所以,对于阻塞套接字而言,这一段程序一定会导致阻塞,其效果和本实验环节多执行一次recv一样,只是本实验环节使程序更简化,测试目标更明确。
3、select的超时
打开正常的基于select服务器,将select超时值分别设置为0(忙等)、1.5秒、1微秒和NULL;启动服务器,并启动多个客户机连接服务器,观察系统CPU使用率。
Select超时值 CPU利用率 0 1.5秒
您可能关注的文档
- 四肢骨折-教学课件.pdf
- 通信原理精品教学(任通菊)第3章 模拟传输.pptx
- 通信原理精品教学(任通菊)第4章 数字基带传输.pptx
- 通信原理精品教学(任通菊)第6章 模拟信号数字化与PCM.pptx
- 通信原理精品教学(任通菊)第8章 现代通信传输技术.pptx
- 通信原理精品教学(任通菊)第七章习题参考解答.pptx
- 通信原理精品教学(任通菊)第5章 基本的数字频带传输.pptx
- 通信原理精品教学(任通菊)作业解答-CH1.doc
- 通信原理精品教学(任通菊)作业解答-CH8.doc
- 通信原理精品教学(任通菊)作业解答-CH6.doc
- 2026秋季中国工商银行集约运营中心(佛山)校园招聘20人备考题库含答案详解(培优).docx
- 中国农业银行宁波市分行2026年度校园招聘214人备考题库附答案详解(夺分金卷).docx
- “梦工场”招商银行长沙分行2026寒假实习生招聘备考题库附答案详解(轻巧夺冠).docx
- 2026贵州省公共资源交易中心定向部分高校选调优秀毕业生专业技术职位考试备考题库完整参考答案详解.docx
- 中国建设银行建信金融资产投资有限公司2026年度校园招聘8人备考题库含答案详解(a卷).docx
- 中国农业银行宁夏回族自治区分行2026年度校园招聘146人备考题库及一套参考答案详解.docx
- 门头沟区青少年事务社工招聘1人备考题库附答案详解(模拟题).docx
- 中国建设银行运营数据中心2026年度校园招聘20人备考题库含答案详解ab卷.docx
- 中国建设银行建银工程咨询有限责任公司2026年度校园招聘9人备考题库及答案详解(有一套).docx
- 2026秋季中国工商银行重庆市分行校园招聘270人备考题库含答案详解(完整版).docx
最近下载
- 弱电机房数据中心的选址及现场勘察表格.docx VIP
- 分子生物学智慧树知到课后章节答案2023年下温州医科大学.docx VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- 基恩士PLC编程手册.pdf VIP
- 电网侧独立储能电站项目经济效益和社会效益分析报告.docx
- 2025年6月福建省普通高中学生学业基础会考历史试卷(含答案) .pdf VIP
- 上汽荣威2017款Ei6 维修手册03-2发动机机械系统-1.0T.pdf
- GB_T 43439-2023 信息技术服务 数字化转型 成熟度模型与评估.pdf VIP
- (新课标)三年级上册第六单元测试A卷(含答案).pdf VIP
- 烟草专卖局培训课件:打击互联网涉烟违法犯罪.ppt
原创力文档


文档评论(0)