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;
            }
  • 相关阅读:
    Go语言 go get 找不到 google.golang.org/protobuf/encoding/prototext 解决办法
    golang.org/x包无法下载
    mqtt服务压力测试
    go-test知识点
    多线程并发
    elasticsearch-基础查询语法整理
    go 代码依赖管理工具mod使用
    微服务软件架构设计
    docker搭建mysql
    服务docker化
  • 原文地址:https://www.cnblogs.com/mohanchen/p/9042229.html
Copyright © 2011-2022 走看看