잘 알려진 포트에 바인딩하고 멀티 캐스트 그룹에 자신을 추가하고 클라이언트에 대한 요청을 수신하는 UDP 서버가 있습니다. (서버가 Windows에 있고 WSARecvFrom을 사용하여 클라이언트 데이터 그램에 대해 중복 수신을 실행합니다.) 클라이언트는 잘 알려진 포트와 멀티 캐스트 IP 주소로 서버에 메시지를 보냅니다.UDP 멀티 캐스트 수신 실패 수신 수신
랩톱에서 '서버'를 테스트 할 때 랩톱이 '휴면'상태가되면 서버의 수신 소켓이 멀티 캐스트 주소에서 '언 바운드'됩니다 (클라이언트가 멀티 캐스트 주소로 보내지 않도록 - 더 길게 받았다. 그러나 소켓은 127.0.0.1에있는 포트로의 전송이 여전히 수신된다는 점에서 여전히 수신 중이며 Windows는 오류를 표시하지 않습니다. (서버 소켓은 INADDR_ANY에 바인딩됩니다.)
'서버'는 자동 검색에 사용되는 피어 - 투 - 피어 응용 프로그램의 일부이므로 예상대로이 상황이 비정상적이지는 않습니다.
멀티 캐스트 주소로 전송하지 않고도 서버가 멀티 캐스트 주소를 적극적으로 수신하고 있는지 확인할 방법을 제안 할 수 있습니까? (네트워크의 모든 '서버'로 불필요한 트래픽을 유발할 수 있습니다)? 한 가지 가능한 솔루션은 멀티 캐스트에 사용되는 어댑터의 IP 주소로 보내는 것이지만이를 결정하는 방법을 모르겠습니다.
마침내이 기능을 구현했으며 (다른 우선 순위에 비해 지연됨) 잘 작동합니다. 다시 한 번 감사드립니다. –