2013-01-02 7 views
4

3 개의 랩탑으로 구성된 작은 로컬 네트워크를 설정 중입니다. 내 목표는 UpNP 프로토콜을 실험하고 노트북이 UpNP를 사용하여 서로를 발견하게하는 것입니다. 이렇게하려면 서로에게 알림을 수신 할 수 있어야합니다. 프로토콜에 따라 이러한 알림은 멀티 캐스트 주소 239.255.255.250:1900으로 전송됩니다. 그러나 랩톱을 설정하여 해당 주소로 수신 대기하는 데 문제가 있습니다. 나는 단지 1 pc를 사용하기 시작했다. 내 PC의 IP 주소는 10.0.0.5입니다.C#의 멀티 캐스트 주소 239.255.255.250:1900에서 수신 대기하도록 UdpClient를 올바르게 설정하는 방법

그러나 239.255.255.250:1900에서 수신 대기하도록 UdpClient를 설정하려고하면 "요청 된 주소가 해당 컨텍스트에서 유효하지 않습니다."라는 오류 메시지가 나타납니다.

내가 사용하여 설정 단지 시도이 : 나는 또한 시도

IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900); 
UdpClient client = new UdpClient(endpoint); 
client.BeginReceive(MessageReceived, null); 

:

UdpClient client = new UdpClient(Port); 
client.JoinMulticastGroup(IPAddress.Parse("239.255.255.250")); 
client.BeginReceive(MessageReceived, null); 

하지만 여전히 같은 오류가 발생합니다 : "요청 된 주소가 유효하지 않습니다 그 문맥".

멀티 캐스트 주소 239.255.255.250:1900에서 수신 대기하도록 UdpClient를 올바르게 설정하려면 어떻게해야합니까?

도움 주셔서 감사합니다.

답변

4

제 책상에서 내 머리를 많이 검색하고 두드리는 소리를 낸 후,이 기능을 작동 시켰습니다. 나는 어제 작업을했다고 생각하지만, 그것은 단지 여기 간다, 그래서 ... 윈도우 7이 아닌 XP에

을했다 : 나는 확실히이 조금 더 나은 기록했다하고자

IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, Port); 

UdpClient client = new UdpClient(); 
client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); 
client.Client.Bind(localEndPoint); 
client.JoinMulticastGroup(IPAddress); 
client.MulticastLoopback = true; 

Client.BeginReceive(MessageReceived, null); 

,하지만 난 그런 이유로 우리는 $$$ 큰돈을 얻습니다.

감사합니다.이 물건을 추출 할 수있는 훌륭한 기술 자료를 제공하는 StackOverflow !!

+0

참고 : SetSocketOption 문 앞에 Bind 문을 사용할 수 없습니다. 그것은 후에 있어야합니다. 아니면 예외가 생깁니다. – Curtis