您的位置:首页 > 编程语言 > C#

c#检测端口是否被占用

2013-12-09 16:20 513 查看
当我们要创建一个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)
{
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();

Console.WriteLine("Port: 8080 status: " + (PortInUse(8080) ? "in use" : "not in use"));

Console.ReadKey();

httpListner.Close();
}


原文地址:/article/4945881.html

因为原文没有找到收藏的地方,就复制过来了,谢谢啦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: