Python KeyboardInterrupt无法使用socket.connect

时间:2018-05-14 09:48:07

标签: python sockets pycharm

在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)

0 个答案:

没有答案