网络编程学习笔记(非阻塞connect)

设置非阻塞,如果返回EINPROGRESS,表示正在建立连接,还没有完成

非阻塞的三个用途:

1、我们可以在三路握手的同时做其它的处理。connect要花一个往返时间完成,而且可以是在任何地主,从几个毫秒的局域网到几百毫秒或几秒的广域网,在这段时间内我们可能有一些其他的处理想要执行

2、可以用这种技术同时建立多个连接。这在web浏览器中很普遍

3、由于我们用select等待连接的完成,因此可以给select设置一个时间限制,从而缩短connect的超时时间。在多数实现中,connect的超时时间在75秒到几分钟之间。有时应用程序想要一个更短的超时时间,使用非阻塞connect就是一种方法。


有一些细节要处理:

1、即使套接口是非阻塞的,如果连接的服务器在同一台主机上,在调用connect时连接通常立即建立

2、有两条与select和非阻塞I/O相关的规则:(1)当连接成功建立时,描述字变成可写;(2)当连接建立出错时,描述字既可读又可写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值