2

クライアントに大きなファイルを提供できる http サーバーを作成しています。

wfile ストリームへの書き込み中に、クライアントが接続を閉じ、サーバーでソケット エラー (Errno 10053) が発生する可能性があります。

クライアントが接続を閉じたときに書き込みを停止することはできますか?

4

1 に答える 1

1

これらのメソッドをBaseHTTPRequestHandlerクラスに追加して、クライアントが接続を閉じたかどうかを知ることができます。

def handle(self):
    """Handles a request ignoring dropped connections."""
    try:
        return BaseHTTPRequestHandler.handle(self)
    except (socket.error, socket.timeout) as e:
        self.connection_dropped(e)

def connection_dropped(self, error, environ=None):
    """Called if the connection was closed by the client.  By default
    nothing happens.
    """
    # add here the code you want to be executed if a connection
    # was closed by the client

2 番目の方法: connection_droppedでは、ソケット エラー (クライアントが接続を閉じたなど) が発生するたびに実行するコードを追加できます。

于 2012-03-29T20:01:59.167 に答える