Echo Server with Timeouts : Server « Network « Python Tutorial






import socket, traceback

host = '127.0.0.1'
port = 51423

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(1)

while 1:
    try:
        clientsock, clientaddr = s.accept()

        clientsock.settimeout(5)
        print "Got connection from", clientsock.getpeername()
        while 1:
            data = clientsock.recv(4096)
            if not len(data):
                break
            clientsock.sendall(data)

        clientsock.close()
    except KeyboardInterrupt:
        raise
    except:
        traceback.print_exc()








21.3.Server
21.3.1.A Minimal Server
21.3.2.Base Server
21.3.3.A SocketServer-Based Minimal Server
21.3.4.A Forking Server
21.3.5.A Threading Server
21.3.6.Sending Streaming Data
21.3.7.TCP Timestamp Server
21.3.8.Echo Server Bound to Specific Address
21.3.9.Delaying Server
21.3.10.Echo Server with Timeouts