次のようなコードを持つTCPサーバーがあります(ループ内):
r, w, e = select([self.sock], [self.sock], [self.sock], 0)
if r or e:
try:
data = self.sock.recv(2048)
except:
debug("%s: .recv() crashed!"%self.id)
debug(traceback.format_exc())
break
何らかの理由で、クライアントからこのサーバーへの接続がランダムに切断されますが、データを送信しようとすると切断されたことがわかり、recv() からエラーが発生します。試行せずにエラーを検出する方法はありますか?データを送る?