首页 > 解决方案 > 获取无法到达的地址发送 UDP 消息

问题描述

我正在尝试在 2 个不同的地址之间进行一些 UDP 通信,所以我的发送代码如下所示:

 var localEndpoint = new IPEndPoint(IpAddress.Parse("192.168.2.10"), 51111)
 var remoteEndpoint = new IPEndPoint(IpAddress.Parse("192.168.1.10"), 51111)

 var sender  = new UdpClient (localEndpoint)
 sender.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontRoute, 1);
 sender.Send (request.RawRequest, request.RawRequest.Length, remoteEndpoint) |> ignore
 sender.Close ()

如您所见,它们是 2 个不同的地址,因此我将接口地址绑定到客户端并关闭路由。但是当我尝试这个时,我收到了无法访问的网络消息,但是当我尝试相同的地址系列时它可以正常工作。

我也向这个目的地(即 192.168.1.2)广播,其中端点是:

new IPEndPoint(IpAddress.Parse("255.255.255.255"), 51111)
sender.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);

它有效。

我究竟做错了什么?

标签: c#

解决方案


推荐阅读