2009-03-20 5 views
2

UDP 브로드 캐스트를 사용하여 원격 장치를 검색하거나 구성하는 프로젝트에서 작업하고 있습니다. 이러한 장치에는 IP 주소가 아직 구성되지 않았으며 적어도 연결된 네트워크와 일치하지 않을 수 있습니다. 현재 우리는 목표 주소가 255.255.255.255 인 단일 sendto을 사용합니다. 대부분의 경우에는 정상적으로 작동하지만 여러 NIC가있는 Vista 컴퓨터에서는 브로드 캐스트가 인터페이스 중 하나에서 전송 된 것으로 보입니다. 어떻게 Vista가 모든 인터페이스에 브로드 캐스트를 보내도록 할 수 있습니까? 나는 개인적으로 모든 시스템을 본 적이멀티 홈 시스템에서 UDP 브로드 캐스트

답변

2

은 하나의 sendto 호출에 응답하여 모든 인터페이스에 대한 패킷을 생성합니다.

더 나은 옵션은 네트워크 인터페이스를 열거 올바른 링크 로컬 방송을 결정하고 각 인터페이스를 통해 개별적으로 별도의 패킷을 전송하는 것입니다.

+1

을 허용하지 않는 음란 문제, 내가 모든 장치가이 있기 때문에 반드시 링크 로컬 주소가 작동하지 않아요 IP의 링크의 서브넷 구성. – megabytephreak

1

인터페이스를 열거하고 각 인터페이스에서 패킷을 한 번 보내십시오.

1

서브넷 브로드 캐스트를 구성하기 때문에 정확하게 동일한 문제가 발생합니다. 장치가 잘못된 범위의 IP (범위 밖에 있음)를 가지고있는 경우 서브넷 브로드 캐스트를 IP 스택에 전송하는 것은 IP 스택에서 허용되지 않습니다. 우리가 DHCP ...

+0

실제로 우리에게는 같은 문제가 있습니다. – megabytephreak

관련 문제