Зачем использовать два IPEndPoint?

Я создаю сервер UDP. Я нашел следующую ссылку на код из MSDN. Может ли кто-нибудь объяснить, почему они используют два объекта IPEndPoint в примере кода. Я предполагаю, что второй ipeEdpoint является адресом отправителя (клиента). Но как это возможно? IP-адрес клиента может быть извлечен из пакета данных грамм, так какова цель второго объекта здесь? Это может быть простой и глупый вопрос, но я немного сбиваю с толку...:D

  byte[] data = new byte[1024];

  IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);

  UdpClient newsock = new UdpClient(ipep);

  Console.WriteLine("Waiting for a client...");

  IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);

  data = newsock.Receive(ref sender);

1 ответ

Решение

Призыв к UdpClient Конструктор проходит в конечной точке хоста. Прием запускает процесс получения данных - который ничего не будет делать, пока другой процесс не сделает запрос к конечной точке, которую вы создали в UdpClient конструктор. Когда это соединение происходит, конечная точка процесса отправляет данные в ваш UdpClient тогда будет доступно. например, в sender переменная.

Другие вопросы по тегам