如何检查远程udp端口

时间:2014-10-13 05:08:45

标签: c# udpclient

我想使用UDPClient检查与远程计算机的连接。听说如果发生故障它将返回一个icmp数据包。我们怎么能抓住它?  如何检查远程机器?

            UdpClient receivingUdpClient = new UdpClient();
            receivingUdpClient.Connect(IPAddress.Parse("10.2.2.13"), 80);

            Byte[] sendBytes = Encoding.ASCII.GetBytes("0");
            Var b=receivingUdpClient.Send(sendBytes, sendBytes.Length);

1 个答案:

答案 0 :(得分:0)

使用UDP,没有明确的方法可以知道数据包是否到达目的地(与TCP进行比较,发送ack数据包让发送者知道其数据包已被接收)。

确实,在某些情况下会发送ICMP packets,但是如果数据包在路由路径的某处被过滤掉(或简单地丢弃)会怎么样?据我所知,大多数家用路由器都预先配置为丢弃外部端口上的所有ICMP。

您可以调查您使用的协议是否具有PING数据包(或某些等效的无操作数据包,或者如果您创建了协议 - 添加它!)而不是依赖ICMP数据包,并使用超时/重试逻辑以验证服务是否可用。