相关疑难解决方法(0)

Python SocketServer:发送到多个客户端?

好吧,我正在尝试用一个SocketServer构建一个小的python prgram,它应该将它收到的消息发送给所有连接的客户端.我卡住了,我不知道如何在服务器端存储客户端,我不知道如何发送给多个客户端.哦,我的程序每次超过1个客户端连接失败,每次客户端发送多个消息...

这是我的代码,直到现在:

        print str(self.client_address[0])+' connected.'
    def handle(self):
        new=1
        for client in clients:
            if client==self.request:
                new=0
        if new==1:
            clients.append(self.request)
        for client in clients:
            data=self.request.recv(1024)
            client.send(data)

class Host:
    def __init__(self):
        self.address = ('localhost', 0)
        self.server = SocketServer.TCPServer(self.address, EchoRequestHandler)
        ip, port = self.server.server_address
        self.t = threading.Thread(target=self.server.serve_forever)
        self.t.setDaemon(True)
        self.t.start()
        print ''
        print 'Hosted with IP: '+ip+' and port: '+str(port)+'. Clients can now connect.'
        print ''
    def close(self):
        self.server.socket.close()

class Client:
    name=''
    ip=''
    port=0
    def __init__(self,ip,port,name):
        self.name=name
        self.hostIp=ip
        self.hostPort=port
        self.s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.s.connect((self.hostIp, self.hostPort))
    def …
Run Code Online (Sandbox Code Playgroud)

python sockets networking socketserver python-2.7

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

networking ×1

python ×1

python-2.7 ×1

sockets ×1

socketserver ×1