我创建了一个非常简单的应用程序来使用 UdpClient 接收 DHCP 消息。
UdpState s = new UdpState();
s.u = server;
s.e = ClientEndPoint;
server = new UdpClient();
server.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
server.Client.Bind(new IPEndPoint(IPAddress.Any, 67));
server.BeginReceive(new AsyncCallback(OnRecieve), s);
void OnRecieve(IAsyncResult asycnResult)
{
Console.WriteLine("Got something");
// Do something
}
我有一个请求 IP 地址的设备,因此每 5 秒发送一次请求等。 OnRecieve 永远不会触发,我通过在 Console.WriteLine 处放置一个断点进行了双重检查。
为了检查是连接还是 PC,我下载了 Microsoft Network Monitor 并进行了捕获。这完美地捕获了请求,所以我知道它与我的程序有关。
有任何想法吗?