消息未发送到所有连接Python

时间:2012-07-25 18:22:21

标签: python multithreading sockets

我正在尝试编写一个允许多个连接的程序,服务器操作员可以向所有连接的客户端发送消息。我已经解决了使用简单线程允许多个连接的问题,现在我的问题是消息不会一次性发送到所有连接的客户端,我必须多次发送消息才能将它发送给客户端。

def send(add, conn, port, s):
    while True:       
        message = raw_input("Message: ")
        add.send(message)

def server(port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('', port))
    s.listen(10))
    print "Waiting for connections..."
    while True:        
        a,b = s.accept()
        print b, "connected"
        connections.append(b)
        thread = threading.Thread(target=send, args=(a, b, port, s))
        thread.start()
        threads.append(thread)

1 个答案:

答案 0 :(得分:1)

这就是TCP的工作原理。没有广播设施。如果需要将相同的消息发送到多个连接的客户端,则必须为每个套接字执行此操作。