c# 端口监控 Helper 以及写一个端口监控工具

c# 端口监控 Helper 以及写一个端口监控工具

  • 介绍
      • 核心代码:
      • 工具完整编码:
        • 1、编写界面
        • 2、打开定时控件的属性设置。
        • 3、编写定时控件的 Tick 事件
        • 结果(运行效果)

介绍

由于最近做上架比较多,会经常来确保服务器的服务,是否正常稳定运行。而端口的检测可以检查这个端口是否正常运行,所以开发了一个小工具: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;
}

工具完整编码:

1、编写界面

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

在这里插入图片描述

TextBox 控件是一个用于输入和显示文本的图形用户界面元素。
Timer 控件是一个能够按照指定的时间间隔触发事件的组件。

2、打开定时控件的属性设置。
  1. Enabled:一个布尔值,用于指示Timer是否正在运行。设置为true时,Timer开始计时并引发Tick事件;设置为false时,Timer停止。
  2. Interval:一个整数,表示Timer事件触发的时间间隔(以毫秒为单位)。例如,设置Interval为1000表示每秒触发一次Tick事件。

在这里插入图片描述

3、编写定时控件的 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;}
结果(运行效果)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/48661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink时间和窗口

目录 时间语义 水位线(Watermarks) 并行流中的水位线 窗口 滚动窗口—Tumbling Windows 滑动窗口—Sliding Windows 会话窗口—Session Windows 全局窗口—Global Windows 例子 时间语义 如图所示,由事件生成器(Event Pr…

萤石举办2024夏季新品发布会,全力推进“2+5+N”智能家居新生态

7月24日,“智动新生,尽在掌控”2024萤石夏季新品发布会在杭州成功举办。本次发布会上,“智慧生活守护者”萤石深入挖掘应用场景,重磅发布了包括智能健康手表、智能家居AI主机、生态控制器、智家APP等多款创新性的产品及应用&#…

【JavaScript】`Map` 数据结构

文章目录 一、Map 的基本概念二、常见操作三、与对象的对比四、实际应用场景 在现代 JavaScript 中,Map 是一种非常重要且强大的数据结构。与传统的对象(Object)不同,Map 允许您使用各种类型的值作为键,不限于字符串或…

基于 HTML+ECharts 实现监控平台数据可视化大屏(含源码)

构建监控平台数据可视化大屏:基于 HTML 和 ECharts 的实现 监控平台的数据可视化对于实时掌握系统状态、快速响应问题至关重要。通过直观的数据展示,运维团队可以迅速发现异常,优化资源配置。本文将详细介绍如何利用 HTML 和 ECharts 实现一个…

关于 夜莺n9e 的简易部署

一、部署夜莺n9e 1.找一个服务器机器 #创建并进入目录 mkdir -p /data/n9e && cd /data/n9e2.准备n9e安装包 (如果存在,跳过) #下载并解压n9e wget https://download.flashcat.cloud/n9e-v6.7.3-linux-amd64.tar.gz tar -zxvf n9e-v6.7.3-linux-amd64.ta…

JL 跳转指令的理解

一般情况下,JU 和 JC 是最常见的跳转指令;但有时会用到JL 指令,JL 说起来更像是一组指令,类似C,C# 语言中的 switch case 语句,但是有个明显的不同,前者的判断条件可以是任意合理数字,后者范围…

制冷系统干燥过滤器

干燥过滤器(Drier Filter)主要是起到杂质过滤的作用。一般来说,这要根据冰箱、空调的制冷系统来确定干燥器的规格,如直径,内径,外径的规格,和内部件,如过滤碗,网布,和分子筛 为了确保…

C#测试控制台程序调用Quartz.NET的基本用法

Quartz.Net是常用的任务调用框架之一,既能在客户端程序中使用,也支持在网页程序后台调用。本文结合参考文献4中的示例代码学习其在控制台程序中的基本用法。   VS2022新建控制台项目,在Nuget包管理器中搜索并安装Quartz包,如下所…

JavaWeb笔记_JSPEL

一.JSP相关技术 1.1 JSP由来 当我们需要向页面输出大量的HTML代码的时候,我们需要通过response对象写多次来输出HTML代码 response.getWriter().write("<font>文本</font>"); 页面的展示和servlet密不可分,不利于后期代码维护,因此推出一种可以…

npm下载pnpm

一、提供node_global和node_cache的文件夹 若不存在&#xff0c;可自行新建文件夹 二、配置环境变量 配置NODE_PATH变量&#xff1a; 配置Path变量&#xff1a; 三、执行cmd指令 npm config set prefix "D:\Configure\nodejs\node_global" npm config set cache &…

公司邮箱一般是什么邮箱

公司邮箱一般是什么邮箱呢&#xff1f;公司邮箱是企业官方通信工具&#xff0c;体现专业形象&#xff0c;提高协作效率。选择时需考虑安全性、功能集成、性价比和技术支持。Zoho邮箱因简洁界面、丰富协作工具和出色安全性能受好评&#xff0c;提供多种套餐选择。 一、公司邮箱…

编写SpringBoot的自定义starter包

starter项目 先来看一下Starter的官方解释&#xff1a; Spring Boot Starter 是一种方便的依赖管理方式&#xff0c;它封装了特定功能或技术栈的所有必要依赖项和配置&#xff0c;使得开发者可以快速地将这些功能集成到Spring Boot项目中。Spring Boot官方提供了一系列的Star…

接入百度文心一言API教程

然后&#xff0c;编辑文章。点击AI识别摘要&#xff0c;然后保存即可 COREAIPOWER设置 暂时只支持经典编辑器.古腾堡编辑器等几个版本后支持.在比期间,你可以自己写点摘要 摘要内容 AL识别摘要 清空 若有收获&#xff0c;就点个赞吧 接入文心一言 现在百度文心一言&…

vsftpd搭建FTP服务器 - 虚拟用户

命令记录 $ sudo apt install vsftpd db-util $ sudo nano /etc/vsftpd.conf $ sudo nano /etc/vsftpd/vsftpd-virtual-users.txt $ sudo db_load -T -t hash -f /etc/vsftpd/vsftpd-virtual-users.txt /etc/vsftpd/vsftpd-virtual-users.db ls /etc/vsftpd/vsftpd-virtual-us…

IDEA的pom.xml显示ignored 的解决办法

问题&#xff1a; idea中创建Maven module时&#xff0c;pom.xml出现ignored。 原因&#xff1a; 相同名称的module在之前被创建删除过&#xff0c;IDEA会误以为新的同名文件是之前删除掉的&#xff0c;将这个新的module的pom.xml文件忽略掉显示ignored. 解决&#xff1a; 在…

看 Unity 组件的源码 —— ILSpy

ILSpy 是开源的 .NET 程序集浏览器和解编译器。 下载 ILSpy ILSpy Github 地址&#xff1a;icsharpcode/ILSpy: .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform! (github.com) 它有 Release 包可以下载 也提供 IDE 的…

STM32工业物联网系统教程

目录 引言环境准备工业物联网系统基础代码实现&#xff1a;实现工业物联网系统 4.1 数据采集模块 4.2 数据处理与分析模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;工业监测与优化问题解决方案与优化收尾与总结 1. 引言 工业物联网&#xff08…

K210视觉识别模块学习笔记7:多线程多模型编程识别

今日开始学习K210视觉识别模块: 图形化操作函数 亚博智能 K210视觉识别模块...... 固件库: canmv_yahboom_v2.1.1.bin 训练网站: 嘉楠开发者社区 今日学习使用多线程、多模型来识别各种物体 这里先提前说一下本文这次测试实验的结果吧&#xff1a;结果是不太成…

Python实现websocket连接服务器报rejected WebSocket connection: HTTP 401

1. websockets报HTTP 401解决办法 代码如下&#xff1a; #!/usr/bin/env python import asyncio import websockets import requestsuri ws://192.168.20.167/websocket msg {"type":6,"param":{"businessType":3,"cmd":1,"f…

线性代数|机器学习-P25线性规划和两人零和博弈

文章目录 0. 概述1. 线性规划问题1.1 定义1.2 举例 2. 线性规划中的对偶问题3. 最大流 - 最小割问题4. 两人零和博弈 MIT教授教学视频&#xff0c;讲得比较泛&#xff0c;需要另外学习很多知识补充 0. 概述 线性规划[LP]问题 线性规划是问题为线性求最值&#xff0c;约束也是求…