首页 程序笔记 C#检测网络端口是否被占用的参考代码

C#检测网络端口是否被占用的参考代码

当我们要创建一个TCP/IP的服务时,我们需要一个1000到65535范围的端口,但本机一个端口只能有一个程序监听,所以我们进行本地监听的时候需要检测端口是否被占用。
在C#的命名空间System.Net.NetworkInformation中的IPGlobalProperties类,使用这个类可以获取所有的监听的连接,然后判断端口是否被占用,参考代码如下:

public static bool IsPortInUse(int port)
{
    bool inUse = false;
    IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
    IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners();
    foreach (IPEndPoint endPoint in ipEndPoints)
    {
        if (endPoint.Port == port)
        {
            inUse = true;
            break;
        }
    }
    return inUse;
}

我们使用HttpListener类在8080端口启动一个监听,然后测试是否可以被检测出来,参考代码如下:

static void Main(string[] args)
{
    HttpListener httpListner = new HttpListener();
    httpListner.Prefixes.Add(http://*:8080/);
    httpListner.Start();
    Console.WriteLine(Port: 8080 status:  + (IsPortInUse(8080) ? in use : not in use));
    Console.ReadKey();
    httpListner.Close();
}
1

站心网

当我们要创建一个TCP/IP的服务时,我们需要一个1000到65535范围的端口,但本机一个端口只能有一个程序监听..

为您推荐

代码照进现实:对公司管理策略的技术性解构

上学的时候觉得计算机专业的一些理论晦涩难懂,跟现实世界的关联太少,每当遇到一些精妙的设计时都会发出一种感叹:究竟是什么脑袋才能想出这么有意思的东西。一晃工作十年,阅历渐丰,隐约发现其实社会中的一些现象..

编写优秀 CSS 代码的 8 个策略

编写基本的CSS和HTML是我们作为Web开发人员学习的首要事情之一。然而,我遇到的很多应用程序显然没有人花时间真正考虑前端开发的长久性和可维护性。我认为这主要是因为许多开发人员对组织CSS / HTML和JavaScript的策..

天天写业务代码,如何成为技术大牛?

不管是开发、测试、运维,每个技术人员心理多多少少都有一个成为技术大牛的梦,毕竟"梦想总是要有的,万一实现了呢"!正是对技术梦的追求,促使我们不断地努力和提升自己。然而"梦想是美好的,现实却是残酷的",很多..

记我经历的一次公司破产经历,一行代码害死一家公司

前言这是一篇亲身经历的真实记录,事情发生在2010年。狗血剧情一再上演,使我的程序员生涯变得跌宕起伏,也从中学到了很多。在写这篇文章之前,我还专门去查了这家公司的资料。有如下事实:1.官网已经打不开了。2.天..

如何处理前任程序员留下的代码

作为软件工程师不可避免会遇到的一个场景是:我们在改变或添加一个功能到不是我们创建的、我们不熟悉的、与我们负责的系统部分无关的代码中时,会遇到麻烦。虽然这可能会是一个繁琐而艰巨的任务,但是由于使用其他开..

对码农而言什么样的代码才能叫做好代码?

好的代码,就像是好的笑话——无需解释就能让别人明白。如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。好的代码,就像是一辆配备了优秀音响和杯架的汽车,这辆车在行驶到最高速度的时候..

当一个程序员写不出代码了,该怎么办?

你已经对着电脑n个小时了。不知道该写什么代码,或者一种摔键盘的冲动正在你的胸中酝酿。咖啡一杯接着一杯。不敢再喝了,因为搞不好要有副作用了,心跳加速,身体不由自主地颤抖,出冷汗,但还是无法产出任何代码。..

从0到1,网络互助起航式

随着移动互联网的快速发展,网络互助的模式已经进入起步状态,未来,网络互助行业前景一片大好。在距今2000余年前的古罗马时期,由于连年征战,士兵们大量死伤导致家中妻女无人依靠。于是,这些争战沙场的士兵们联合..

ASP.NET MVC最常用的设计模式代码示例

ASP.NET MVC 是一个基于分层架构的框架,其核心架构本身已经实现了 MVC 模式(Model-View-Controller)。除了 MVC 模式,开发者在使用 ASP.NET MVC 开发应用时,通常会结合其他设计模式以提高代码的可维护性、可扩展..

10款.NET开发中推荐的代码分析和质量工具

以下是10款.NET开发中常用的代码分析和质量工具列表,以及它们的主要功能和使用场景:1. SonarQube简介:一个流行的开源静态代码分析平台,用于检测代码中的漏洞、错误、技术债务等问题。主要功能:支持代码质量监测..

.NET C# EntityFramework(EF)连接SQLite代码示例

在.NET C#中使用Entity Framework(EF)连接SQLite数据库是一种常见的做法,可以有效地管理和操作数据。以下是一个简单的示例代码,展示了如何使用EF Core连接到SQLite数据库并执行基本的CRUD操作。首先,确保你已经..

设计模式之高质量代码

0,什么是高质量代码我觉得回答这个问题,应该从两个方面考虑。从业务角度考虑。首先,在公司开发一款软件,应该是业务在驱动。所以,从这个角度来说,代码第一个应该满足的是业务需求,如果连最基本的业务需求都满..

Crawlee 下一代网络爬虫与浏览器自动化工具

在数字化时代,数据是企业决策和创新的基石。网络爬虫作为获取数据的重要工具,其重要性不言而喻。今天,我们将深入探讨Crawlee,一个为Node.js环境设计的先进网络爬虫和浏览器自动化库,它如何帮助开发者构建快速、..

C#发送邮件代码简洁示例(附源码下载)

C#发送邮件,主要使用的是System.Net.Mail命名空间下的方法实现,方法很简单,短短十几行代码即可完成发送,具体代码如下。 try { MailMessage myMail = new MailMessage(); myMail.From = new MailAddress..

判断 nginx 服务是否启动,未启动自动重启 shell脚本

我的是宝塔面板直接上代码nginx_procnum=`ps -ef|grep "nginx"|grep -v grep|wc -l`if [ $nginx_procnum -eq 0 ]then echo "start nginx..." /etc/init.d/nginx startelse echo "no cmd" fi然后添加定时任务;每分钟..

AutoMapper.AutoMapperMappingException”类型的异常在 AutoMapper.dll 中发生,但未在用户代码中进行处理

今天修改别人的代码抛出了这样的异常: AutoMapper.AutoMapperMappingException”类型的异常在 AutoMapper.dll 中发生,但未在用户代码中进行处理。进行了调试,往下走的时候直接报错了,百度之~中文网站上没..

c#无损压缩图片代码,可设置压缩质量

之前写过一篇文章《使用htmlagilitypack+xpath抓取网页内容示例》,提到使用htmlagilitypack抓取网页信息。想做一个网络爬虫,但是想把网页上的图片也下载到本地,于是写了下载图片的功能。但是第三方网站上的图片大..

.NET Core MVC判断是否是ajax请求

在ASP.NET Core MVC中,可以通过检查请求头中是否包含X-Requested-With标头来判断请求是否为Ajax请求。可以使用以下代码来检查:if(Request.Headers["X-Requested-With"] == "XMLHttpRequest"){// 处理Ajax请求的逻..

使用.NET SDK Betalgo调用OpenAI ChatGPT API 代码示例

首先准备工作是需要有OpenAI的帐号然后获取ApiKey。目前国内IP无法注册和登陆OpenAI。翻墙后注册需要手机验证,可以通过手机验证码平台注册,注册过程非常快,花费大概1元左右。注册方法请看:最新OpenAI ChatGPT注..

图像视觉库AForge.NET人脸检测用法

AForge.NET是一个开源的C#图像处理和计算机视觉库,由俄罗斯的AForge团队开发。AForge.NET提供了丰富的图像处理和计算机视觉功能。AForge.NET 的特点图像处理:提供了丰富的图像处理工具,包括滤波、边缘检测、形态..

发表回复

返回顶部