在Windows 7中运行Python 2.7.6。
我有一个小脚本打开一个套接字,向下发送一些数据并等待响应。我试图让Ctrl-C退出脚本立即如果它试图连接(例如服务器没有收听)卡住了。如果我垃圾邮件Ctrl-C,脚本最终会退出,但不会通过我的try / except。
我最初在PyCharm的终端运行它,但怀疑IDE可能会搞乱Ctrl-C,但我也没有得到CMD的任何结果。 Ctrl-Pause / Break确实退出脚本,但我不能在PyCharm的终端中使用它。
我做错了什么,或者这只是套接字的工作原理?
import socket
import sys
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
print("Trying to connect...")
s.connect(("192.168.0.100", 80))
s.sendall("Hello world")
except KeyboardInterrupt:
print("Interrupted, exiting.")
s.close()
sys.exit(1)
print("Waiting for response...")
data = s.recv(1024)
s.close()
print(data)