simple serveur avec plusieurs clients

Je suis en train de mettre en œuvre simple serveur avec plusieurs clients. Il devrait recevoir des données de prise et par la suite envoyer des données à d'autres clients. J'utilise sélectionnez le module à partir de la bibliothèque standard de Python.
Voici serveur:

class ProcessingServer:
    def __init__(self, bindaddress="localhost", portname=50001, maxqueue=5):
        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.socket.bind((bindaddress, portname))
        self.socket.listen(maxqueue)
        self.inputsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.data = ""

    def connect_to_output(self, address, port):
        self.inputsocket.connect((address, port))

    def start(self):
        rsocks = []
        wsocks = []
        rsocks.append(self.socket)
        wsocks.append(self.inputsocket)
        self.socket.accept()

        while True:
            try:
                reads, writes, errs = select.select(rsocks, wsocks, [])
            except:
                return
            for sock in reads:
                if sock == self.socket:
                    client, address  = sock.accept()
                    rsocks.append(client)
                else:
                    self.socket.send(self.data)
                    rsocks.remove(sock) 
            for sock in writes:
               if sock == self.inputsocket:
                    self.data = sock.recv(512)
                    wsocks.remove(sock)
                    print repr(self.data)

Ici est simple client:

import socket
mysocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysocket.connect(("localhost", 50001))
while True:
    data = mysocket.recv(512)
    print repr(data)
mysocket.close()

Recevant une partie de serveur fonctionne bien, mais le serveur ne produit pas de sortie.
Je ne suis pas expérimenté dans la programmation de réseau à tout et Il se sent comme je suis en manque de quelque chose.

  • (chuchote) twisted
  • Merci, mais je tiens à garder les choses aussi simples que possible))
  • Twisted est beaucoup plus simple que d'utiliser les sockets. Vous n'avez même pas à vous soucier de threads. Tordu n' tous que le jazz pour vous.
InformationsquelleAutor qutron | 2011-08-23