C# Helper开发一个简单的端口监控工具
作者:盗理者
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#端口监控内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!