Зачем использовать два 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
переменная.