Создание TCP-сервера

Вы можете создать сервер TCP с помощью socketserver библиотеки. Вот простой эхо-сервер.

Серверная сторона

 from sockerserver import BaseRequestHandler, TCPServer

class EchoHandler(BaseRequestHandler):
    def handle(self):
        print('connection from:', self.client_address)
        while True:
            msg = self.request.recv(8192)
            if not msg:
                break
            self.request.send(msg)

if __name__ == '__main__':
    server = TCPServer(('', 5000), EchoHandler)
    server.serve_forever()

 

Сторона клиента

 from socket import socket, AF_INET, SOCK_STREAM
sock = socket(AF_INET, SOCK_STREAM)
sock.connect(('localhost', 5000))
sock.send(b'Monty Python')
sock.recv(8192)  # returns b'Monty Python'


 

socketserver делает его относительно легко создавать простые серверы TCP. Однако вы должны знать, что по умолчанию серверы являются однопоточными и могут одновременно обслуживать только одного клиента. Если вы хотите работать с несколькими клиентами, либо экземпляр ThreadingTCPServer вместо этого.

 from socketserver import ThreadingTCPServer
...
if __name__ == '__main__':
    server = ThreadingTCPServer(('', 5000), EchoHandler)
    server.serve_forever()