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

在connect()阻塞条件下,连接同网段一个不存在的IP地址,立即返回,调用perror显示no route to host.

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


所以得出以下结论:

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

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


在实现时,由于无法保证connect的目标一定在本网段内,所以先将其置为非阻塞状态,然后调用select和getsockpt等检查是否已经连接成功。此时,connect显示EINPROGRESS,即在非阻塞下connect已经处于连接状态。

阅读更多
文章标签: linux
个人分类: Linux环境编程
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭