当我尝试使用socket
lib来测试远程主机上是否打开了端口时,有一种奇怪的行为。这是我的代码,我在centos6.9上使用python2.6。
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)
result = sock.connect_ex((
remote_host, 80
))
sock.close()
return result == 0
问题是,如果connect_ex
返回111
(Connection refused
),然后尝试重新连接到81
等其他端口,则会返回{{ 1}}(即103
)。进展如下:
Software caused connection abort
那么问题:为什么每次连接失败后它都会返回103?