C# Helper开发一个简单的端口监控工具

 更新时间:2025年09月09日 09:27:12   作者:盗理者  
C# 端口监控 Helper 是一款基于C#语言的工具,这个意义在于帮助开发者快速实现对指定端口的监控,以保障(观察)网络服务的正常运行,下面我们就来看看具体实现方法吧

由于最近做上架比较多,会经常来确保服务器的服务,是否正常稳定运行。而端口的检测可以检查这个端口是否正常运行,所以开发了一个小工具:C# 端口监控 Helper 是一款基于C#语言的工具,这个意义在于帮助开发者快速实现对指定端口的监控,以保障(观察)网络服务的正常运行。

核心代码

// 检查端口是否被占用
public bool IsPortInUse(int port)
{
    // 初始化一个布尔变量,默认端口未被占用
    bool inUse = false;

    // 获取本地机器的网络属性信息
    IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
    // 获取当前正在监听的TCP端点集合
    IPEndPoint[] endPoints = ipProperties.GetActiveTcpListeners();

    // 遍历所有活动的TCP端点
    foreach (IPEndPoint endPoint in endPoints)
    {
        // 如果端点的端口号与传入的端口号相同,则表示端口被占用
        if (endPoint.Port == port)
        {
            // 设置inUse为true,表示端口被占用
            inUse = true;
            // 退出循环,因为已经找到了被占用的端口
            break;
        }
    }

    // 返回端口是否被占用的结果
    return inUse;
}

工具完整编码

编写界面

我这里使用winform,所以直接拖出来两个大大的 TextBox , 外加一个定时控件

TextBox 控件是一个用于输入和显示文本的图形用户界面元素。

Timer 控件是一个能够按照指定的时间间隔触发事件的组件。

打开定时控件的属性设置

Enabled:一个布尔值,用于指示Timer是否正在运行。设置为true时,Timer开始计时并引发Tick事件;设置为false时,Timer停止。

Interval:一个整数,表示Timer事件触发的时间间隔(以毫秒为单位)。例如,设置Interval为1000表示每秒触发一次Tick事件。

编写定时控件的 Tick 事件

代码:

        private void timer1_Tick(object sender, EventArgs e)
        {
            string[] strings = textBox1.Text.Split(new[] { "\r\n" }, StringSplitOptions.None);
            string info = "端口占用情况\r\n";

            foreach (var a in strings)
            {  
                    if (int.TryParse(a, out int port))
                    {
                        if (IsPortInUse(port))
                        {
                            info += $"{a}  (占用)\r\n";
                        }
                        else
                        {
                            info += $"{a}  (未占用)\r\n";
                        }
                    } 
            }
            textBox2.Text = info;
        }


        // 检查端口是否被占用
        public bool IsPortInUse(int port)
        {
            // 初始化一个布尔变量,默认端口未被占用
            bool inUse = false;

            // 获取本地机器的网络属性信息
            IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
            // 获取当前正在监听的TCP端点集合
            IPEndPoint[] endPoints = ipProperties.GetActiveTcpListeners();

            // 遍历所有活动的TCP端点
            foreach (IPEndPoint endPoint in endPoints)
            {
                // 如果端点的端口号与传入的端口号相同,则表示端口被占用
                if (endPoint.Port == port)
                {
                    // 设置inUse为true,表示端口被占用
                    inUse = true;
                    // 退出循环,因为已经找到了被占用的端口
                    break;
                }
            }

            // 返回端口是否被占用的结果
            return inUse;
        }

运行效果

到此这篇关于C# Helper开发一个简单的端口监控工具的文章就介绍到这了,更多相关C#端口监控内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c#中WinForm使用OpencvSharp4实现简易抓边

    c#中WinForm使用OpencvSharp4实现简易抓边

    本文主要介绍了c#中WinForm使用OpencvSharp4实现简易抓边,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C# CSV文件读写的实现

    C# CSV文件读写的实现

    本文主要介绍了C# CSV文件读写的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • C#中一个高性能异步socket封装库的实现思路分享

    C#中一个高性能异步socket封装库的实现思路分享

    下面小编就为大家分享一篇C#中一个高性能异步socket封装库的实现思路,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • 基于WPF实现简单放大镜效果

    基于WPF实现简单放大镜效果

    这篇文章主要为大家详细介绍了WPF如何实现简单放大镜效果,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • C# WinForms实现打印监听组件工具

    C# WinForms实现打印监听组件工具

    打印监听组件是一款集成于 Windows 桌面环境的打印任务管理与监控工具,适用于企业级应用场景,下面我们就来看看C# WinForms实现打印监听组件工具的具体方法吧,希望对大家有所帮助
    2026-04-04
  • C#实现Modbus通信功能的示例详解

    C#实现Modbus通信功能的示例详解

    Modbus作为一种开放且广泛采用的通信协议,在实现设备间数据交换方面发挥着至关重要的作用,它不仅支持多种物理层接口(如RS-232, RS-485, 以及以太网),还因其简单易用的特点而被大家所青睐,本文通过实际示例介绍如何在C#项目中轻松实现Modbus通信功能
    2024-11-11
  • C#基础继承和多态详解

    C#基础继承和多态详解

    C#基础继承和多态详解,需要的朋友可以参考一下
    2013-03-03
  • C#基本打印事件用法实例

    C#基本打印事件用法实例

    这篇文章主要介绍了C#基本打印事件用法,实例分析了C#中print打印及DrawString文本字符串绘制等相关技巧,需要的朋友可以参考下
    2015-06-06
  • C#中实现跨线程写入的示例代码

    C#中实现跨线程写入的示例代码

    本文主要介绍了C#中实现跨线程写入的示例代码,通过ConcurrentQueue接收写入请求,由专用线程顺序处理,并使用双信号机制控制读取线程的暂停与恢复,下面就来详细的介绍一下
    2026-01-01
  • web打印 window.print()介绍

    web打印 window.print()介绍

    web打印 window.print()介绍,需要的朋友可以参考一下
    2013-05-05

最新评论