Dns.GetHostEntry 方法在运行的时候,会消耗很长时间,请问它的执行原理是什么呢?
用C#实现一个Ping的功能,需要绑定IpEndHost,代码如下:
IPHostEntry ipHostEntry = Dns.GetHostEntry(ip);
IPEndPoint host = new IPEndPoint(ipHostEntry.AddressList[0], 0);
程序在运行到这一步的时候会耗费很长时间。

解决方案 »

  1.   

    Dns.GetHostEntry 
    相当于 nslookup 命令
      

  2.   

    这个是正解。调用这个函数,Windows会向邻近的DNS服务器提交域名解析请求,因此耗时受到网络因素的影响。如果你熟悉网络编程,抓抓网络包,就能够对网络包交换有更加深入的了解。
      

  3.   

    ipHostEntry.AddressList[0] 这是干什么呢?谁能保证这就是当前你所指定的网卡的 IPv4 地址,而不是其它设备(比如蓝牙适配程序模拟的网卡)地址,或者 IPv6 地址?看到某些人在网上“范例”程序中写这种代码,请小心了。