C# 网络应用关于Ip一些现象

 1             string hostName = Dns.GetHostName();
 2             IPAddress[] myIps = Dns.GetHostAddresses(hostName);
 3 
 4             Console.WriteLine("Ip any : {0}", IPAddress.Any);
 5             Console.WriteLine("Ip broadcast : {0}", IPAddress.Broadcast);
 6             Console.WriteLine("Ip none : {0}", IPAddress.None);
 7             Console.WriteLine("Ip loopback : {0}", IPAddress.Loopback);
 8             foreach (IPAddress ip in myIps)
 9             {
10                 Console.WriteLine("Ip host ip : {0}", ip);
11             }

输出结果:

 

注意:

一、

IPAddress.Any实际的值是(0.0.0.0)本身不属于有效ip地址的范畴,所以在TCP/UDP连接中用来表示要连接的对方的地址是无效的。但是如果用来socket.bind(myHost),就表示本机所有对应端口都被监听了(如下代码)

IPEndPoint hostA = new IPEndPoint(IPAddress.Any, myHostPort);
Socket socketA = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
socketA.Bind(hostA);//通过此种方式可以监听本机所有ip的myHostPort端口了

二、

IPAddress.LoopBack的值永远是(127.0.0.1)永远代表本机地址,且不接触外部网络;

posted @ 2012-06-15 18:19  code++  阅读(419)  评论(0编辑  收藏  举报