2013-05-20 5 views
0

나는 여러 개의 "클라이언트"에 연결하고 듣는 파이썬 데몬에서 작동합니다.파이썬 : 다중 연결

중요 : 모든 클라이언트에 대해 데몬 포트가 동일해야합니다.

class UDPReader(asyncore.dispatcher): 
     def __init__(self, local, remote, parser): 
       asyncore.dispatcher.__init__(self) 
       self.parser = parser 
       self.create_socket(socket.AF_INET, socket.SOCK_DGRAM) 
       self.bind(local) 
       self.connect(remote) 

지금 내 질문은 어떻게 여러 개의 "클라이언트"에 동시에 연결하고 동일한 포트로 수신 대기 할 수 있습니까? 그리고 클라이언트가 데이터를 볼 수있는 방법이 있습니까?

+1

UDP는 연결 정보를 유지하지 않습니다. UDP는 연결 정보를 유지 관리하지 않으며, 어느 쪽이 열려 있는지를 아는 사람으로부터 정보를 수신하고 수신하는 모든 사람에게 정보를 소리내어 읽는 것과 같습니다. – BlackVegetable

답변

1

socket.recvfrom()보기 - 반환 값은 address 당신이 다음 socket.sendto() 호출에 전달할 수 있습니다 보낸 사람과 무언가의 주소 쌍 (string, address)이다.

UDP connect()으로 연결을 설정하지 않아도 어디서나 보내고받을 수 있습니다. 모든 것은 실제로 소켓의 기본 대상 주소를 내부적으로 설정하고 매번 명시 적으로 주소를 전달하는 대신 send() 또는 write()을 사용하게합니다.