我正在尝试编写一个允许多个连接的程序,服务器操作员可以向所有连接的客户端发送消息。我已经解决了使用简单线程允许多个连接的问题,现在我的问题是消息不会一次性发送到所有连接的客户端,我必须多次发送消息才能将它发送给客户端。
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)
答案 0 :(得分:1)
这就是TCP的工作原理。没有广播设施。如果需要将相同的消息发送到多个连接的客户端,则必须为每个套接字执行此操作。