2012-07-25 73 views
0

我是新來的線程和套接字,所以請裸露在我身邊。我正在嘗試編寫一個允許多個連接的程序,服務器操作員可以將消息發送給所有連接的客戶端。我已經解決了允許使用簡單線程進行多個連接的問題,現在我的問題是該消息不會一次全部發送給所有連接的客戶端,我必須多次發送該消息以將其發送給任何客戶端。消息沒有被髮送到所有連接Python

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

這是TCP是如何工作的。沒有廣播設施。如果您需要將相同的消息發送給多個連接的客戶端,則必須爲每個套接字執行此操作。

+0

你如何建議我這樣做? – Max00355 2012-07-25 18:38:13

+1

也許'爲連接c:c.send(message)'?不是在每個線程雖然... – 2012-07-25 19:14:19

+0

我其實已經嘗試過。它僅將消息發送給其中一個連接的客戶端。這就是爲什麼我很困惑。 – Max00355 2012-07-25 19:16:25

相關問題