您的位置:首页 > 运维架构 > Linux

Linux下connect函数:no route to host & timeout的区别

2011-10-18 15:54 603 查看
在connect()阻塞条件下,连接同网段一个不存在的IP地址,立即返回,调用perror显示no route to host.

连接其他网段或外网时,显示connection timeout,期间呈阻塞状态。

所以得出以下结论:

1.在连接内网同网段时,connect可以近似认为非阻塞。

2.在连接其他网段及外网时,connect默认为阻塞状态。

在实现时,由于无法保证connect的目标一定在本网段内,所以先将其置为非阻塞状态,然后调用select和getsockpt等检查是否已经连接成功。此时,connect显示EINPROGRESS,即在非阻塞下connect已经处于连接状态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux