Linux下connect超时处理(总结)
最近在写一个测试工具,要求快速的高效率的扫描出各个服务器开放了哪些端口。而connect失败是通过超时来控制的,在规定的时间内,connect会发起多次连接,一直执行到超时,才返回错误。select是一种IO多路复用机制,它允许进程指示内核等待多个事件的任何一个发生,并且在有一个或者多个事件发生或者经历一段指定的时间后才唤醒它。connect本身并不具有设置超时功能,如果想对套接字的IO操作设置超时,可使用select函数。 为了控制连接建立时间,将该socket描述符加入到select的可读可写集合中,采用select函数设定超时。 如果规定时间内成功建立,则描述符变为可写;否则,采用getsockopt函数捕获错误信息 恢复套接字的文件状态并返回。
下载地址
用户评论