-1

私は現在 Python で作業しており、サーバーのメソッドBaseHTTPServerをオーバーライドする必要があります。handle_timeout()

Python のドキュメント ( https://docs.python.org/2/library/basehttpserver.html ) によると、BaseHTTPServer は TCPServer のサブクラスです。TCPServer は、オーバーライドしたいメソッドhandle_timeout( https://docs.python.org/2/library/socketserver.html#SocketServer.BaseServer.handle_timeout ) を実装しています。

私のコードは現在次のようになっています。

class newServer(BaseHTTPServer.HTTPServer):

def handle_timeout(self):
    print "Timeout!"

class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):

def setup(self):
    self.timeout=2
    BaseHTTPServer.BaseHTTPRequestHandler.setup(self)  


if __name__ == '__main__':

server=newServer

httpd = server((HOST_NAME, PORT_NUMBER), RequestHandler)
print time.asctime(), "Server Starts - %s:%s" % (HOST_NAME, PORT_NUMBER)
try:
    httpd.serve_forever()
except KeyboardInterrupt:
    pass


httpd.server_close()
print time.asctime(), "Server Stops - %s:%s" % (HOST_NAME, PORT_NUMBER)

タイムアウト自体は機能します。サーバーから次のメッセージが表示されます。

Request timed out: timeout('timed out',)

問題は、これが私が印刷したいメッセージではないということです。私の問題の助けはありますか?

4

1 に答える 1