为什么使用两个 IPEndPoint

本文关键字:两个 IPEndPoint 为什么 | 更新日期: 2023-09-27 18:35:32

我正在创建一个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);

为什么使用两个 IPEndPoint

UdpClient 构造函数的调用在主机端点中传递。 Receive 启动接收数据的进程,在另一个进程向您在 UdpClient 构造函数中创建的终结点发出请求之前,该过程不会执行任何操作。 当该连接发生时,将数据发送到UdpClient的进程的终结点将可用。 例如,在sender变量中。