套接口超时及非阻塞的connect
时间:2009-07-17 来源:famdestiny
在涉及套接口的I/O操作上设置超时通常有三个方法:
- 调用alarm,该方法涉及到信号处理,有可能扰乱进程中现有的alarm调用。
- 在select中阻塞等待,select有可随意设置的超时。
- 采用SO_RCVTIMEO和SO_SNDTIMEO选项。
非阻塞的connect:
非阻塞的connect主要有以下用途:
- 我们可以把三路握手迭合在其他处理上。说白了就是在握手期间我们还可以干点其他的,不用傻等。
- 我们可以采用该技术同时建立多个连接。
- 既然使用select等待连接的建立, 连接的超时时间可以由我们自行控制。
需要处理的一些细节:
- 我们必须处理connect连接立刻建立的情况。
- 通常连接建立成功,该描述字可写。失败时即可读又可写。
相关阅读 更多 +