2014-11-10 1 views
0

Я разрабатываю систему, которая отправляет UDP-пакеты с использованием LWIP на процессоре Nios. Я разработал приложение 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

Адрес, переданный в конструктор, является сетевым адаптером (ами), который вы слушаете. Адрес, переданный в метод Receive, является фильтром и обновляется для отражения источника сообщения. Я не думаю, что вы хотите использовать его повторно, и я не думаю, что он должен быть таким же, как связанный сетевой адаптер.