Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 消息未发送到所有连接_Python_Multithreading_Sockets - Fatal编程技术网

Python 消息未发送到所有连接

Python 消息未发送到所有连接,python,multithreading,sockets,Python,Multithreading,Sockets,我正在尝试编写一个允许多个连接的程序,服务器操作员可以向所有连接的客户端发送消息。我已经解决了使用简单线程允许多个连接的问题,现在我的问题是消息不会一次发送到所有连接的客户端,我必须多次发送消息才能发送到任何客户端 def send(add, conn, port, s): while True: message = raw_input("Message: ") add.send(message) def server(port):

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

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)

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

您建议我如何执行此操作?我实际上已经尝试过了。它只将消息发送到一个连接的客户端。这就是为什么我如此困惑。可能是因为你在列表中存储地址而不是套接字。它做同样的事情,它发送消息两次(因为我有两个到服务器的连接),但一次只发送到一个客户端。我明白了!谢谢,费迪索夫先生