2016-07-15 4 views
0

単一のクライアント用のサーバーがあります。クライアントは、ここではいつでも に接続および切断することができますそれは動作しますが、socket.errorが生成は分までに数秒からランダムな時間を要するコードサーバーソケットエラーのタイマー管理

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((HOST, PORT)) 
s.listen(1) 
while true: 
    a = s.accept() 
    try: 
     data = a[0].recv(1024) 
    except socket.error: 
     a[0].close() 
     print 'cought the error' 

簡略化されています。この価値を管理してもらえますか?

+0

直接ではありません。ノンブロッキングI/Oを検索するか、関連する文書を選択/ポーリングします。 –

答えて

0

クライアントが切断された場合、はなく、recv()はすぐに空の文字列を返します。また、この場合は接続をクローズしていません。