2008-11-14 3 views
2

멀티 캐스트를 통해 XML 피드가 전송되고 있지만 멀티 캐스트 그룹 주소를 알 수 없습니다. 대신 localhost를 사용할 수 있습니까? 즉, 멀티 캐스트 피드

Socket socket = 
    new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp); 
IPEndPoint ip = new IPEndPoint(IPAddress.Any,8888); 
socket.Bind(ip); 
socket.SetSocketOption 
    (SocketOptionLevel.IP, 
    SocketOptionName.AddMembership, 
    new MulticastOption(IPAddress.Parse("127.0.0.1"),IPAddress.Any)); 

byte[] data = new byte[1024]; 
int length = socket.Receive(data); 

...

사용자 (클라이언트)가 멀티 캐스트 그룹에 가입 할 필요가

답변

2

번호, 당신은 멀티 캐스트 그룹 IP에 AddMembership 것, 다음에 연결합니다.

그렇지 않으면 멀티 캐스트 피드를받을 수 없습니다. 귀하의 코드는 UDP 방송과 함께 작동합니다.

0

유니 캐스트와 달리 멀티 캐스트의 그룹 주소를 알아야합니다.

2

엄밀히 말하자면 비 멀티 캐스트 주소에서 멀티 캐스트 데이터 수신 대기 포트를 열면 본질적으로 표준 UDP를 수신하고있는 것입니다. 멀티 캐스트와 UDP의 차이는 IP 주소에 있습니다. 그것의 고정 IPV4 주소 범위는 고정 호스트에 묶여 있지 않습니다. 오히려 그것은 가상 게시 - 구독 방식으로 네트워크의 가장자리에있는 라우터가 인식합니다. 서브넷 내에서 멀티 캐스트는 모든 의도와 목적으로 방송과 동일합니다.

멀티 캐스트 주소에 쓸 경우 해당 주소는 서브넷의 모든 호스트에서 사용할 수 있습니다. 라우터가 멀티 캐스트를 지원하면 관심있는 것으로 알리는 모든 클라이언트에게 업스트림을 제공합니다. 서브넷 게시/구독으로 생각하십시오.

이 모든 것은 말하자면, 멀티 캐스트에 해당하는 로컬 호스트를 찾고 있다면 아마도 대신 브로드 캐스트를 봐야 할 것입니다.

관련 문제