2016-11-05 2 views
0

私はそれにソケットを持っているPythonでクラスを作った。複数のクライアントを同じソースにPythonで接続するにはどうすればよいですか?

error: [Errno 10056] A connect request was made on an already connected socket 

が、私はエラーが言っているかを見ることができますが、彼らは実行したとき、私はクラスは互いに独立したものの:私は同じクラスの複数のインスタンスを実行しようとすると、私はこのエラーを取得します。それは干渉しないでしょう。

class Bot(): 

    HOST = "localhost" 
    PORT = 6667 
    s = socket.socket() 

    def Connect(self): 

     self.s.connect((self.HOST, self.PORT)) 

をそれから私は、ボットを作成するとき:ここ

は、私が使用しているコードだ

bots = [] 

def Setup_Bot(): 

    global bots 

    _bot = Bot() 

    _bot.Connect() 

    bots.append(_bot) 

if __name__ == "__main__": 

    for i in range(5): 

     Setup_Bot() 

     sleep(1) 

    print "Done Setting Up" 

どのように私はこの作業を取得することができるだろうか?

答えて

2

ソケットにsをインスタンス変数として設定します。すべてのBotインスタンスが同じクラス属性を共有し、同じソケットを共有するようになりました。

class Bot(): 
    HOST = "localhost" 
    PORT = 6667 

    def __init__(self): 
     self.s = socket.socket() 

    def Connect(self): 
     self.s.connect((self.HOST, self.PORT)) 
+0

これは、ありがとう! – Malpp

関連する問題