2014-11-10 4 views
0

Nios 프로세서에서 LWIP를 사용하여 UDP 패킷을 보내는 시스템을 개발 중입니다. 수신 된 데이터를 시각화 할 수 있도록 C# 응용 프로그램을 개발했습니다.UDP 클라이언트 멀티 캐스트 주소

멀티 캐스트 주소로 보낼 때 C# 응용 프로그램에서 데이터를받는 데 문제가 있습니다. COM + uter에서 C# 응용 프로그램을 실행하면 IP 225.0.0.1 (멀티 캐스트 주소)로 주소가 지정된 수신 패킷을 시각화 할 수 있지만 C# 응용 프로그램은 수신하지 않습니다.

C# 응용 프로그램은 네트워크 주소 (예 : 192.168.0.100)로 전송 된 데이터를 받거나 255.255.255.255로 데이터를 전송할 때 수신합니다 (이 경우 두 개의 다른 컴퓨터에서 앱을 실행할 수 있으며 둘 다 동일한 데이터를 수신 할 수 있음).

여기 포럼에서 여러 답변을 읽고 모두 시도해 보았습니다.

내가 현재 사용하고하는 것은 코드 :

UdpClient udpClientImage; 

IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 8884); 

udpClientImage = new UdpClient(RemoteIpEndPoint); 
udpClientImage.EnableBroadcast = true; 

IPAddress m_GrpAddr; 
m_GrpAddr = IPAddress.Parse("225.0.0.1"); 
udpClientImage.JoinMulticastGroup(m_GrpAddr); 


while (true) 
{ 
    Byte[] receiveBytes = udpClientImage.Receive(ref RemoteIpEndPoint); 

    senderIPAddress = RemoteIpEndPoint.Address; 
    string returnData = Encoding.ASCII.GetString(receiveBytes); 
} 

내가 멀티 캐스트 주소를 수신하기 위해 뭔가를 놓치고 있습니까?

어떤 도움이 환영받을 것

답변

0

귀하의 UdpClient는 듣고 멀티 캐스트 그룹에 가입해야합니다. 자동이 아니에요.

udpClientImage.JoinMulticastGroup(multicastAddress); 

이 방법에 대한 자세한 내용은 MSDN을 참조하십시오.

+0

JoinMulticastGroup으로 이미 테스트를 마쳤습니다. 나는 그 코드로 내 질문을 업데이트했다. – LerTex

0

생성자에 전달 된 주소는 수신 대기중인 NIC입니다. Receive 메서드에 전달 된 주소는 필터이며 메시지 원본을 반영하도록 업데이트됩니다. 나는 당신이 그 것을 재사용하고 싶지 않다고 생각하고, 바운드 NIC와 같지 않아야한다고 생각하지 않습니다.