c#检测端口是否被占用的简单实例。
当我们要创建一个Tcp/Ip Server connection ,我们需要一个范围在1000到65535之间的端口 。
但是本机一个端口只能一个程序监听,所以我们进行本地监听的时候需要检测端口是否被占用。
命名空间System.Net.NetworkInformation下定义了一个名为IPGlobalProperties的类,我们使用这个类可以获取所有的监听连接,然后判断端口是否被占用,代码如下:
复制代码代码如下:
public static bool PortInUse(int port) { bool inUse = false; IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties(); IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners(); foreach (IPEndPoint endPoint in ipEndPoints) { // www.jbxue.com if (endPoint.Port == port) { inUse = true; break; } }
return inUse;
}使用HttpListner类在8080端口启动一个监听,然后测试是否可以被检测出来,代码如下:
复制代码代码如下:
static void Main(string[] args) { HttpListener httpListner = new HttpListener(); httpListner.Prefixes.Add("http://*:8080/"); httpListner.Start(); // www.jbxue.com
Console.WriteLine("Port: 8080 status: " + (PortInUse(8080) ? "in use" : "not in use"));
Console.ReadKey();
httpListner.Close();
} posted on 2013-12-07 08:12 阅读( ...) 评论( ...)