2017-01-20 4 views
0

Я делаю серверное приложение, и мне нужно знать, от какого адресного сообщения дошло до сервера. В классе Socket есть RemoteEndPoint, чтобы узнать, откуда пришло сообщение. У него есть какое-то решение, чтобы найти, где сообщение приходит в классе UDPClient? Я искал веб, но ничего не нашел.Как я могу получить удаленную конечную точку в UDPClient?

ответ

2

Как не писал никакого кода, это упрощенный пример, который должен получить работу:

UdpClient udp = new UdpClient(5050); 
private void Listen() 
{ 
    while (true) 
    { 
     IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0); 
     byte[] recData = udp.Receive(ref anyIP); 
     string ip = anyIP.Address.ToString() //this is client IP address 
    } 
} 
+0

Спасибо! Он отлично работает! Я не сказал в этом вопросе, но я хотел получить порт, откуда он появился, как вы сказали, но вместо этого «Адрес» должен использовать «Порт». Еще раз спасибо! – Ramon

+0

Отредактировано для добавления номера порта. Это часть объекта IPEndpoint – Peter4499

+0

Это не сработало в моем случае. Я получил только IP-адрес принимающей сетевой платы. Что я могу сделать? (Код работает в фоновом режиме и уже урезан до этого примера; Установка: отправка программы в виртуальную машину (IP: * .3, хост-сетевой адаптер, отправка в эфир (255.255.255.255)) получение программы на хосте (IP: * .1). "AnyIP.Adress" == * .1) –

Смежные вопросы