Python 为什么我的程序没有输出

Python 为什么我的程序没有输出,python,sockets,network-programming,Python,Sockets,Network Programming,我使用socket创建tcp连接,并检查443服务器端口是否打开 #!/usr/bin/env python import socket import subprocess import sys from datetime import datetime subprocess.call('clear', shell=True) remoteServer = raw_input("Enter a remote host to scan: ") remoteServerIP = sock

我使用
socket
创建tcp连接,并检查443服务器端口是否打开

#!/usr/bin/env python
import socket
import subprocess
import sys
from datetime import datetime

subprocess.call('clear', shell=True)

remoteServer    = raw_input("Enter a remote host to scan: ")
remoteServerIP  = socket.gethostbyname(remoteServer)

print "-" * 60
print "Please wait, scanning remote host", remoteServerIP
print "-" * 60

t1 = datetime.now()

try:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    result = sock.connect_ex((remoteServerIP, 443))
    if result == 0:
        print "Port {443}: Open"
    else:
        print "Port {443}: Close"
    sock.close()

except KeyboardInterrupt:
    print "You pressed Ctrl+C"
    sys.exit()

except socket.gaierror:
    print 'Hostname could not be resolved. Exiting'
    sys.exit()

except socket.error:
    print "Couldn't connect to server"
    sys.exit()

t2 = datetime.now()
total =  t2 - t1
print 'Scanning Completed in: ', total

有时我得到的输出是
打开
关闭
,但有时我没有得到输出。例如,我输入
64.233.160.2
64.233.160.3
,无
打开
关闭
输出。我怎么了?

最可能的原因是您尝试连接的机器既不接受连接,也不主动拒绝连接。尝试设置连接的超时()


在按下
Ctrl-C
之前,您的程序不会退出这一事实表明,
socket.connect
调用正在阻塞。

您是否尝试过将所有内容都放入一次尝试中,并进行一次常规操作,只是为了看看有什么问题?@JohnRuddell没有问题。只是没有输出,程序似乎无法停止运行,只有当您按ctrl+cif键尝试
telnet
这样的IP时,您才能
尝试64.233.160.3…
挂起。这正是正在发生的事情,请参阅我上面的评论