python serveur multithread

Ce que je suis en train de programme est simple multithread python serveur de jeu pour le plaisir. Après beaucoup de frustration, je n'ai pas été en mesure de comprendre pourquoi mon test de connexion du client. Voici mon server.py code:

    import socket
import threading
import clientThread
import struct
import string

class Server:
    def __init__(self):
        self.HOST = 'localhost'
        self.PORT = 22085
        self.BUFFIZE = 1024
        self.ADDRESS = (self.HOST,self.PORT)
        self.clientList = []
        input("Press enter to start the server. . .")
        self.running = True
        self.serverSock = socket.socket()
        self.serverSock.bind(self.ADDRESS)
        self.serverSock.listen(2)
        self.clientThread = clientThread.clientThread(self)
        print("Starting client thread. . .")
        self.clientThreadObj = threading.Thread(target = self.clientThread.start, args = (self))
        print("Awaiting connections. . .")
        while self.running:
            clientInfo = self.serverSock.accept()
            print("Client connected from %s." % clientInfo[1])
            # Append to clientThread list...

        self.serverSock.close()
        print("- end -")

serv = Server()

Le serveur démarre le thread pour les connexions existantes et commence à écouter. Le fil intégré pour les connexions existantes, clientThread, des boucles à travers une liste d'objets client qui pour l'instant ne rien faire, ils sont tout simplement architectural. Ici, c'est le clientThread.py

import socket
import threading
import struct
import string

class clientThread:
    def __init__(self, serv):
        self.server = serv
        self.clientList = []
        self.running = True
        print("Client thread created. . .")
    def start(self):
        print("Beginning client thread loop. . .")
        while self.running:
            for client in self.clientList:
                message = client.sock.recv(self.server.BUFFSIZE)
                if message != None and message != "":
                    client.update(message)

Et enfin, le très simple client de l'objet:

import string

class clientObject:
    def start(self,clientInfo):
        self.sock = clientInfo[0]
        self.address = clientInfo[1]
    def update(self,message):
        self.sock.send("Testamundo.\r\n".encode())

Maintenant, le problème ici est que mon client ne peut même pas se connecter à mon serveur. - Il simplement. Voici le code de mon client simple test:

import socket
import string

address = ("192.168.1.1",22085)
mySocket = socket.socket()

mySocket.connect(address)
print("Connected successfully!")

Cela renvoie, sur la ligne qui relie à l'adresse "Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement après une période de temps, ou une connexion établie a échoué car l'hôte connecté n'a pas répondu".

Des suggestions? Merci! Désolé pour tout ce code, je ne savais pas si je devais poster tous ou pas, j'ai donc pensé qu'il ne pouvait pas trop mal.

Vous pourriez être en train de réinventer la roue. Découvrez docs.python.org/library/socketserver.html Plus précisément le paragraphe sur le multithreading mixin docs.python.org/library/socketserver.html#asynchronous-mixins
Comment est-ce module de m'échapper! Je ne savais même pas qu'il existait... Merci!
Cela devrait être une réponse.

OriginalL'auteur pajm | 2011-04-02