c# - 为什么要使用两个IPEndPoint?

标签 c# sockets msdn

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

最佳答案

UdpClient构造函数的调用将传递到主机端点。接收开始接收数据的过程-在其他过程向您在UdpClient构造函数中创建的终点发出请求之前,它不会做任何事情。当确实发生这种连接时,将数据发送到UdpClient的过程的端点将可用。例如在sender变量中。

关于c# - 为什么要使用两个IPEndPoint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776339/

相关文章:

c# - 获取 'excelcnv.exe' 位置

c# - 如果URL包含“#”,如何在C#中获取页面的完整URL?

javascript - 使用 javascript 自动选择下拉列表并运行 jquery

c# - Visual Studio 中 Windows 服务和配置应用程序的最佳实践

java - 数据输入 : Bytes lost over TCP

winapi - 调优套接字连接调用超时

Linux:在不执行 read()/write() 的情况下检查套接字/管道是否损坏

c++ - c++\msdn 中的这个 "CONSTANT>>1"是什么

c++ - 来自 MSDN 问题的初学者 C++ Windows D2D1Circle 示例

从 Delphi 调用 SHGetSetSettings