2012-07-25 4 views
0

저는 스레딩 및 소켓에 익숙하지 않으므로 나와 함께하시기 바랍니다. 여러 연결을 허용하는 프로그램을 작성하려고하는데 서버 운영자가 연결된 모든 클라이언트에게 메시지를 보낼 수 있습니다. 간단한 스레드를 사용하여 여러 연결을 허용하는 문제를 해결했습니다. 이제는 모든 클라이언트가 모든 클라이언트에 메시지를 보내지 않습니다. 메시지를 여러 번 보내어 클라이언트에 보내야합니다. TCP 작동 방법모든 연결에 메시지를 보내지 않습니다. 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

이입니다. 방송 시설이 없습니다. 연결된 여러 클라이언트에 동일한 메시지를 보내야하는 경우 각 소켓에 대해 동일한 메시지를 보내야합니다.

+0

내가 어떻게하는 것이 좋습니다? – Max00355

+1

아마도'for c : c.send (message)'? 각 스레드에 있지만 ... –

+0

나는 실제로 그것을 시도했습니다. 연결된 클라이언트 중 하나에게만 메시지를 전송합니다. 그래서 내가 왜 의아해하는지. – Max00355

관련 문제