Python Forum
Set request timeout for socketserver
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Set request timeout for socketserver
#1
I'm implementing simple server which should accept connection from client, receive and send data from some time (e.g. couple of minutes) then close connection and accept another connection.

I defined handler and server classes as follows
import time
import socketserver


class MyHandler(socketserver.BaseRequestHandler):

    def handle(self):
        print('{} - Incoming connection from {}'.format(time.strftime('%d.%m.%Y %H:%M:%S', time.localtime()), self.client_address))

        data = self.request.recv(8192)
        self.request.sendall(data)


class MyServer(socketserver.TCPServer):
    timeout = 3

    def __init__(self, serverAddress, RequestHandlerClass):
        socketserver.TCPServer.__init__(self, serverAddress, RequestHandlerClass)

    def handle_timeout(self):
        print('{} - Timeout'.format(time.strftime('%d.%m.%Y %H:%M:%S', time.localtime())))


if __name__ == '__main__':
    server = MyServer(('localhost', 9999), MyHandler)
    print("Server started.")

    try:
        server.serve_forever()
    except KeyboardInterrupt:
        pass
    finally:
        server.shutdown()
        server.server_close()
        print("Server stopped.")
After starting server, I connected to it and waited for some time. I expected that after 3 second of inactivity connection will be closed, but it remains active. What I'm doing wrong, how to accept serve each connection only for predefined time?

Thanks
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to get my Python SocketServer work parallely? testsid 0 1,716 Oct-16-2020, 02:58 PM
Last Post: testsid
  telnetlib timeout kerzol81 0 3,356 Sep-12-2019, 08:38 AM
Last Post: kerzol81

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020