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;
            }
  • 相关阅读:
    大二下学期团队项目(app端web请求)
    大二下每周总结
    大二下学期团队项目(手机端分类查询前端)
    Windows 2008 R2 64位下安装Oracle 10.2.0.5
    Win7 32位下安装Oracle 10g
    SQL Developer安装使用教程
    Oracle使用DBCA建立数据库实例
    史上最全Oracle安装配置图文教程,含TNS配置
    Oracle9i完美安装、配置及操作
    安装MySQL启动服务时报错解决办法,错误代码1045
  • 原文地址:https://www.cnblogs.com/mohanchen/p/9042229.html
Copyright © 2011-2022 走看看