[英]how to check a remote udp port
我想使用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);
使用UDP,沒有確定的方式來知道數據包是否到達其目的地(與TCP比較,TCP會發送ack數據包以使發送方知道其數據包已被接收)。
確實,在某些情況下會發送ICMP數據包 ,但是如果該數據包在路由路徑中的某個位置被過濾掉(或只是丟棄了)怎么辦? 據我了解,例如,大多數家用路由器都已預先配置為將所有ICMP丟棄在外部端口上。
您可以調查正在使用的協議是否具有PING數據包(或某些等效的無操作數據包,或者是否已創建協議-添加它),而不是依賴ICMP數據包,並將其與超時/重試邏輯一起使用驗證服務是否可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.