Вы можете добавить эти методы к вашему 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
Во втором методе: connection_dropped, вы можете добавить некоторый код, который вам хотят выполняться каждый раз, когда происходит ошибка сокета (например, клиент закрыл соединение).
Благодарим вас за советы. –
рад, что я могу помочь! Добро пожаловать в Stackoverflow! :) –
socket.error вызывается только при отправке данных клиенту (self.wfile.write). Вы знаете какой-либо способ определить, нарушена ли труба, не пытаясь отправить что-нибудь? –