Múltiples conexiones de red simultáneas: servidor Telnet, Python

Actualmente estoy escribiendo un servidor Telnet en Python. Es un servidor de contenido. Las personas se conectarían al servidor a través de telnet y se les presentaría contenido de solo texto.

Mi problema es que el servidor obviamente necesitaría soportar más de una conexión simultánea. La implementación actual que tengo ahora solo admite una.

Este es el servidor básico de prueba de concepto con el que comencé (aunque el programa ha cambiado mucho con el tiempo, el marco básico de telnet no lo ha hecho):

import socket, os

class Server:
    def __init__(self):
        self.host, self.port = 'localhost', 50000
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.bind((self.host, self.port))

    def send(self, msg):
        if type(msg) == str: self.conn.send(msg + end)
        elif type(msg) == list or tuple: self.conn.send('\n'.join(msg) + end)

    def recv(self):
        self.conn.recv(4096).strip()

    def exit(self):
        self.send('Disconnecting you...'); self.conn.close(); self.run()
        # closing a connection, opening a new one

    # main runtime
    def run(self):
        self.socket.listen(1)
        self.conn, self.addr = self.socket.accept()
        # there would be more activity here
        # i.e.: sending things to the connection we just made


S = Server()
S.run()

Gracias por tu ayuda

Respuestas a la pregunta(9)

Su respuesta a la pregunta