TCP非堵塞IO的connect连接处理模型

本文详细探讨了TCP非阻塞IO的connect连接处理模型,包括非阻塞connect的三个应用场景,如资源利用优化、多连接技术和自定义超时设置。还深入分析了非阻塞connect的代码实现,特别指出在不同操作系统中获取待处理错误的差异,并提供了三种判断连接成功的方法。最后总结了非阻塞IO的重要性和相关注意事项。
摘要由CSDN通过智能技术生成

一、非堵塞connect版本

当在非堵塞TCP套接字上, 我们调用connect函数会立刻返回EINPROGRESS, 不过此时TCP三路握手正在进行, 我们可以通过检查套接字的状态。


*非堵塞connect有三个用途

1)、我们可以把三路握手叠加到其他的处理上面。 因为在连接过程中花费1个RTT时间,在局域网或者广域网上的时间幅度偏差很大(几毫秒甚至几秒), 那么我们可以利用这些时间让CPU处理其他事情。

2)、在web程序当中的多连接技术。

3)、通常情况非堵塞的connect连接的超时间是75秒, 但是通过非堵塞connect版本 ,我们可以自己设置等待时间。


*非堵塞connect细节处理

●  如果套接字是非堵塞的情况下, 如果我们连接到的服务器在同一个主机上面, 那么连接将会立刻完成。

●  在非堵塞套接字连接的时候, 我们需要用select来检查connect连接情况有以下两个规则:(1)当连接成功建立时, 描述符号将会变的可写。(2)当连接遇到错误的时候, 描述符变为即可读又可写。


二、非堵塞connect代码分析

源代码如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值