- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九讲高级socket编程.ppt
网络化编程 第九讲 高级socket编程 内容提要 高级IO函数 Nonblocking IO 信号驱动IO Unix domain socket Raw socket 高级IO函数 read/recv/readv/recvmsg write/send/writev/sendmsg recvmsg/sendmsg最为通用,可以替代所有的其它函数 read/write最简单,并且不限于socket recv/send 函数 常见的 flags MSG_DONTWAIT 标志 MSG_PEEK 标志 MSG_WAITALL 标志 readv/writev 函数 readv/writev 函数 readv/writev 函数 Nonblocking IO By default, sockets are blocking blocking socket 操作 输入 read, readv, recv, recvfrom, and recvmsg 输出 write, writev, send, sendto, and sendmsg 接受连接请求 accept 连接请求 connect Blocking read vs. nonblocking read Blocking read TCP, 如果没有数据,阻塞;如果哪怕有一个Byte的数据,可以返回,除非设置了MSG_WAITALL标志 UDP,如果没有报文到达,阻塞;有一个报文到达,返回 Nonblocking read 如果有数据,返回;否则,立即返回,指示错误EWOULDBLOCK Blocking write vs. nonblocking write Blocking write TCP,写操作相当于将应用程序的数据拷贝到内核的socket send缓冲区。 如果send缓冲满,操作阻塞; 否则,返回实际拷贝的数据长度(可能比预期的短) UDP,不会阻塞 Nonblocking write TCP,如果send缓冲区满,立即返回,指示错误EWOULDBLOCK Accept: Blocking vs. nonblocking accept 就是应用程序从内核的连接队列中取出一个ESTABLISHED连接【回忆】 Blocking accept 如果有ESTABLISHED连接,返回之;否则,阻塞 Nonblocking accept 如果没有,立即返回,指示错误EWOULDBLOCK listening socket的两个队列 Connect: Blocking vs. nonblocking connect 的任务是完成三次握手 Blocking connect 如果三次握手没有完成,阻塞等待完成 否则返回 Nonblocking connect 如果三次握手没有完成,立即返回,指示错误EINPROGRESS Connection Establishment A 和 B 对初始序列号进行协商 采用三次握手 Socket Timeouts 采用alarm 采用信号 IO多路复用 select 可以管理多个file descriptor 可以精确到微秒 SO_RCVTIMEO 和 SO_SNDTIMEO socket 选项 新的选项,仅限于socket 可以精确到微秒 alarm例子 参见 unpv103e/lib/connect_timeo.c 要点: SIGALRM句柄的设置与恢复信号 alarm的设置与恢复 Nonblocking read/write Echo client例子 采用select多路复用机制 见 unpv103e/nonblock/strclinonb.c 比较完整,综合考虑读、写阻塞 考虑框架 + 逻辑(Logic) 缓冲区管理 Nonblocking connect 三次握手时间 一个connect 需要花费一个 RTT 的时间 RTT时间可能在几ms(LAN)到几百ms 甚至几秒(WAN)之间 Server busy 采用nonblocking connect,多个连接建立过程可以同时进行. 这在 Web browsers中非常常见. 采用 select 等待连接建立, 设置时间限制, 减少等待时间 通常connect的超时从 75 秒到几分钟. 如果不想等那么长时间,那就有必要采用nonblocking Nonblocking connect 代码 见 unpv103e/lib/connect_nonb.c 框架要点: 设置NONBLOCKING 尝试 connect 设置 select 参数,select 监听 同时监视socket的可读、可写状态 成功 or 超时? Nonblocking connect - Web cl
您可能关注的文档
- 第三讲数据链路层.ppt
- 第三讲未来的电力系统.ppt
- 第三讲求职材料的制作.ppt
- 第三讲浅谈手机安全.ppt
- 第三讲混合策略纳什均衡.ppt
- 第三讲滑坡稳定性计算的几个问题.ppt
- 第三讲课程教改成果与创新.ppt
- 第三讲食品安全与品质管理.ppt
- 第三课中国古典文学时代特色.ppt
- 第三课中国古典文学的时代特色原创课件.ppt
- 2025年青少年编程教育课程体系标准化课程内容与教育技术发展对接.docx
- 工程财务基础知识培训.pptx
- 2025年新能源储能电池技术创新与市场前景分析报告.docx
- 2025年AI技术在新药研发中的药物成药性预测与优化策略.docx
- 2025年环境管理规章制度(7篇范文).docx
- 2025-2026学年小学数学五年级下册人教版(2024)教学设计合集.docx
- 新能源物流行业绿色物流新能源车辆智能充电桩技术创新报告.docx
- 劳动课课件PPT——瓜果蔬菜栽.pptx
- 2025年乡村旅游市场背景下民宿品牌传播路径研究.docx
- 新能源行业2025供应链弹性:技术创新与风险应对全景解析报告.docx
最近下载
- 复合材料 第八章 先进复合材料.ppt VIP
- 人教版八年级物理第九单元《压强》测试题及答案.doc VIP
- 《复合材料学》全套教学课件.pptx
- 复合材料复合材料导论.ppt VIP
- 2025年闽教版(2024)小学英语四年级上册(全册)教学设计(附目录P123).docx
- 冠心病的介绍与治疗PPT.pptx VIP
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第三季度招聘23人笔试参考题库附答案解析.docx VIP
- 2.2.3 气候——特征和影响因素(课件)八年级地理上册(人教版).pptx VIP
- 八年级地理上册湘教版第二章第二节中国的气候课件.pptx VIP
- 2024建筑施工升降机安全生产隐患识别图集.docx VIP
文档评论(0)