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的工作原理。没有广播设施。如果您需要向多个连接的客户端发送相同的消息,则必须为每个套接字发送相同的消息。您建议我如何执行此操作?我实际上已经尝试过了。它只将消息发送到一个连接的客户端。这就是为什么我如此困惑。可能是因为你在列表中存储地址而不是套接字。它做同样的事情,它发送消息两次(因为我有两个到服务器的连接),但一次只发送到一个客户端。我明白了!谢谢,费迪索夫先生