如果您选择了随机但有效的IP地址和端口,socket.connect()
则将尝试建立与该端点的连接。默认情况下,如果未为套接字设置显式超时,则这样做会阻塞并最终超时,从而引发exceptionsocket.error: [Errno 110] Connection timed out
。
我的计算机上的默认超时为120秒。也许您没有等待足够长的时间socket.connect()
来返回(或超时)?
您可以尝试减少超时,如下所示:
import socket
s = socket.socket()
s.settimeout(5) # 5 seconds
try:
s.connect(('123.123.123.123', 12345)) # "random" IP address and port
except socket.error, exc:
print "Caught exception socket.error : %s" % exc
请注意,如果为套接字显式设置了超时,则异常将是由上述except子句socket.timeout
派生的socket.error
,因此将被上述except子句捕获。