zoukankan      html  css  js  c++  java
  • 如何取得当前机器正在使用的端口列表

    上一篇我讲到了如何取得可用的端口。那么,与这个相反的一个问题就是,如何取得正在使用的端口列表呢?

    这个问题依然是没有什么现成的东西可用的,但对于咱来说,算不了什么大不了的问题。至少我想到一个比较土的办法,嘿嘿

    1. 我们知道,要想查看当前所有的端口,可以通过netstat工具,如下

    image

    2. 现在的关键问题是,如何调用该工具,得到这个结果后分析得到我们要的结果

    我们可以在之前的PortHelper类型中添加一个方法

    public string GetPortList()
    {

        ProcessStartInfo info = new ProcessStartInfo();
        info.FileName = "netstat";
        info.Arguments = "-na";
        info.CreateNoWindow = true;
        info.UseShellExecute = false;
        info.RedirectStandardOutput = true;

        Process p = new Process();
        p.StartInfo = info;
        p.Start();
        p.WaitForExit();

        StreamReader reader = p.StandardOutput;
        StringBuilder sb = new StringBuilder();
        int row = 0;
        while (!reader.EndOfStream)
        {
            string r = reader.ReadLine().Trim();
            if (row++ > 3)
            {
                sb.AppendLine(r);
            }
        }

        return sb.ToString();
    }

    3. 很快的我们就可以看得到下面这样的结果

    image

    怎么样,和我们手工打netstat -na命令的效果是不是很像呢?

    当然,我们还可以收到这个结果之后进一步进行处理。这个问题就留给有兴趣的朋友自己去实现了

  • 相关阅读:
    php责任链模式
    php工厂模式
    php观察者模式
    php单例模式
    php的抽象类
    Mysqli的常用函数
    PDO的基本操作
    算法--各种算法
    file_get_post实现post请求
    redis的5种数据结构的使用场景介绍
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1493156.html
Copyright © 2011-2022 走看看