connect
与WSAETIMEDOUT
一起失败。这很好,但无论如何,要缩短超时时间吗?也许像2-3秒?目前它似乎比10秒钟更高。较短的连接超时
操作系统是Windows,使用Winsock的用C++
connect
与WSAETIMEDOUT
一起失败。这很好,但无论如何,要缩短超时时间吗?也许像2-3秒?目前它似乎比10秒钟更高。较短的连接超时
操作系统是Windows,使用Winsock的用C++
在调用connect()
之前,将套接字置于非阻塞模式。当它返回时出现WSAEWOULDBLOCK
错误,请拨打select()
以任意超时间隔。如果select()
报告套接字变为可写,则连接成功。如果select()
报告超时,请关闭套接字。
在我的电脑默认(阻止)连接超时是3 + 6 + 12 + 24 = 45秒。在此间隔到期之前以非阻塞模式关闭套接字安全吗? – truthseeker 2015-08-12 10:52:36
@truthseeker:无法保证任何给定PC上默认连接超时的时间间隔。是的,您可以在超时前关闭插槽。 – 2015-08-12 17:10:12
这已经被问过:WINSOCK - Setting a timeout for a connection attempt on a non existing IP?
不,它是由IP堆栈来处理。如果需要更改此功能,则必须启动计时器并终止连接。
[WINSOCK - 在非现有IP上为连接尝试设置超时?](http://stackoverflow.com/questions/6199122/winsock-setting-a-timeout-for-a-connection-尝试在一个非现有的ip) – Nick 2012-04-16 15:27:48