2017-06-19 8 views
0

私はメッセージを送るメッセージボックスを表示する小さなプログラムを作ろうとしています。そして、それは動作しますが、私はクライアント側の接続を閉じたときに、サーバースクリプトが終了し、私はこのメッセージを得る:私は、決算からサーバースクリプトを停止しない方法pythonがkeyboardinterruptの接続を閉じるのを止めるには?

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

:これは私の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 

を私のクライアント側のスクリプトを閉じると?

+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

'try'' except'文を別のwhileループに埋め込むことができます。それが1つの解決策になります。 – Peter

関連する問題