2017-06-19 54 views
0

所以,即时通讯尝试做一个小程序,显示与我发送消息的消息框。和它的作品,但是当我客户方关闭连接的服务器脚本退出,我得到这个消息:如何停止python从关闭键盘中断连接?

Traceback (most recent call last): File "server.py", line 9, in <module> 
    conn, addr = s.accept() File "C:\Python27\lib\socket.py", line 206, in accept 
    sock, addr = self._sock.accept() KeyboardInterrupt 

这是我的Python代码:

import socket 
from appJar import gui 

HOST = ''     # Symbolic name meaning all available interfaces 
PORT = 1337    # Arbitrary non-privileged port 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((HOST, PORT)) 
s.listen(1) 
conn, addr = s.accept() 

while 1: 
    data = conn.recv(1024) 
    if not data: break 
    app=gui("Besked fra Romeo") 
    app.addLabel("idk",data) 
    app.go() 

我如何阻止关闭服务器脚本当我关闭我的客户端脚本?

+0

你是从CLI运行这个吗?如果是这样,使用'nohup' –

+0

即时尝试使这个工作在Windows上。 – Asperix

回答

1

KeyboardInterrupt只是一个例外。你应该能够赶上它:

try: 
    # Your loop 
except KeyboardInterrupt: 
    # Code that gets executed when ctrl-c is pressed 
+0

啊,好吧,但我该怎么办?我如何让它重新启动try:loop? – Asperix

+0

你可以在另一个while循环中嵌入'try'' except语句。这将是一个解决方案。 – Peter