등록 된 여러 클라이언트에서 UDP 프로토콜을 통해 메시지를 브로드 캐스팅하려고합니다.UDP 소켓을 통해 브로드 캐스트하는 방법은 무엇입니까?
나는 우리가 보내고 소켓을 통해 수신 두 명령 아래 필요가 생각 : 우리가 볼 수 있듯이
sendto(sock,buffer,
strlen(buffer),0,(const struct sockaddr *)&server,length);
recvfrom(sock,buffer,256,0,(struct sockaddr *)&from, &length);
, 우리는 두 번째받는 사람의 주소 인 마지막으로, 같은 6 인수가 필요합니다. 서버 간 클라이언트의 경우 주소가 있습니다. 그러나 서버 간에는 메시지가 수신 된 마지막 클라이언트의 주소 만 있습니다.
나는 한 번 서버에 연결하는 모든 소켓의 주소를 저장하려고 시도 했으므로 sendto()를 사용할 수 있습니다. 그러나 모든 클라이언트가 동일한 컴퓨터에서 실행 중이므로 그 &from
은 같게 보입니다.
어떤 대안이 있습니까? 내가 어디로 잘못 가고 있니? 로컬 컴퓨터에서 실행되는 모든 클라이언트에 메시지를 브로드 캐스팅하기 만하면됩니다. ?
나는 혼란 스럽다. '브로드 캐스트 '대신에'멀티 캐스트'를 의미합니까? –
모든 클라이언트에게 동시에 메시지를 보내려고합니다. – mkkhedawat
'struct sockaddr_in' 구조체를 확인하십시오. _port number_ ['sin_port']라는 것이 있습니다. –