c#检测端口是否被占用的简单实例_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > c#检测端口是否被占用的简单实例

c#检测端口是否被占用的简单实例

 2013/12/7 10:26:14  snowfly123  博客园  我要评论(0)
  • 摘要:c#检测端口是否被占用的简单实例。当我们要创建一个Tcp/IpServerconnection,我们需要一个范围在1000到65535之间的端口。但是本机一个端口只能一个程序监听,所以我们进行本地监听的时候需要检测端口是否被占用。命名空间System.Net.NetworkInformation下定义了一个名为IPGlobalProperties的类,我们使用这个类可以获取所有的监听连接,然后判断端口是否被占用,代码如下:复制代码代码如下:publicstaticboolPortInUse
  • 标签:C# 检测 实例
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();
}

发表评论
用户名: 匿名