zoukankan      html  css  js  c++  java
  • c#判断指定端口号是否被占用

    本文系原创

    分享判断指定端口号是否被占用的两种方法:

            /// <summary>
            /// 判断指定端口号是否被占用
            /// </summary>
            /// <param name="port"></param>
            /// <returns></returns>
            internal static Boolean IsPortOccupedFun1(Int32 port)
            {
                Boolean result = false;
                try
                {
                    Process p = new Process();
                    p.StartInfo = new ProcessStartInfo("netstat", "-an");
                    p.StartInfo.CreateNoWindow = true;
                    p.StartInfo.UseShellExecute = false;
                    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    p.StartInfo.RedirectStandardOutput = true;
                    p.Start();
                    String output = p.StandardOutput.ReadToEnd().ToLower();
                    string ip1 = "127.0.0.1";
                    string ip2 = "0.0.0.0";
                    System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
                    List<string> ipList = new List<string>();
                    ipList.Add(ip1);
                    ipList.Add(ip2);
                    for (int i = 0; i < addressList.Length; i++)
                    {
                        ipList.Add(addressList[i].ToString());
                    }
    
                    
                    for (int i = 0; i < ipList.Count; i++)
                    {
                        if (output.IndexOf("tcp " + ipList[i] + ":" + port.ToString()) >= 0)
                        {
                            result = true;
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Application.ActiveApplication.Output.Output(ex);
                }
                return result;
            }    
            /// <summary>
            /// 判断指定端口号是否被占用
            /// </summary>
            /// <param name="port"></param>
            /// <returns></returns>
            internal static Boolean IsPortOccupedFun2(Int32 port)
            {
                Boolean result = false;
                try
                {
                    System.Net.NetworkInformation.IPGlobalProperties iproperties = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties();
                    System.Net.IPEndPoint[] ipEndPoints = iproperties.GetActiveTcpListeners();
                    foreach (var item in ipEndPoints)
                    {
                        if (item.Port == port)
                        {
                            result = true;
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Application.ActiveApplication.Output.Output(ex);
                }
                return result;
            }
  • 相关阅读:
    java 支付宝即时到帐提交订单dome
    C#字符串string的常用使用方法(转载)
    UltraEdit 回车符替换空格
    java 七牛上传图片到服务器(采用的html5 压缩 传输base64方式)
    c# 多播委托
    c# 泛型委托
    c# 求数组的最大值
    c# 匿名函数和lamda表达式语法
    匿名函数和lamda表达式
    导出Excel之Epplus使用教程4(其他设置)
  • 原文地址:https://www.cnblogs.com/mohanchen/p/9042229.html
Copyright © 2011-2022 走看看