Принять данные через UDP протокол - C#
Формулировка задачи:
Два дня смотрел что к чему в интернете, но так и понял что к чему. А может и понял, но роутерне пропускает пакеты, хотя вроде порт настроил. Задача простая с андроид устройства отправлять команды в виде строки string длиной около 10-20 байт. На компе надо принять сию посылку и для начала просто вывести в консоль. К примеру принять команду от программы iptv remote на андроиде.
Вроде все просто но на деле как то плохенько, точнее вообще никак. Прошу помощи. Нужен самый примитивный вариант, чтоб понять смысл. Заранее спасибо.
Что есть IPEndPoint ? Как я понимаю это точка, грубо говоря, которая представляет конкретный порт и адрес на данном компе. то есть указав
Мы говорим UDPКлиенту что слушать нужно на всех возможных сетевых интерфейсах.
Но если указать конкретный адрес, хоть "0.0.0.0", как в примере выше, то пакеты все равно принимаются. Или в случае прослушивая порта в IPEndPoint имеет значение только порт? Или это уместно только для UDP ? Как я понимаю, должно работать или с локальным адресом "127,0,0,1" или с существующим адресом одной из сетевых карт.
Нашел нормальный рабочий пример. http://msdn.microsoft.com/en-us/library/tst0kwb1(v=vs.110).aspx
Теперь другой вопрос, но по той же теме.
UdpClient listener = new UdpClient(listenPort); IPAddress ip = IPAddress.Parse("0.0.0.0"); IPEndPoint groupEP = new IPEndPoint(ip, listenPort); .... byte[] bytes = listener.Receive(ref groupEP);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
Решение задачи: «Принять данные через UDP протокол»
textual
Листинг программы
IPEndPoint localPoint = new IPEndPoint(DoGetHostAdresses(Dns.GetHostName()), port);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д