首页 > 编程语言 >C# 判断本机端口有没有被占用

C# 判断本机端口有没有被占用

时间:2024-02-20 18:14:03浏览次数:17  
标签:endPoint isPortInUse C# 占用 端口 ipGlobalProperties IPEndPoint port

直接上代码

public static bool IsPortInUse(int port)
    {
        bool isPortInUse = false;
        IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
        IPEndPoint[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpListeners();
        IPEndPoint[] udpConnInfoArray = ipGlobalProperties.GetActiveUdpListeners();

        foreach (IPEndPoint endPoint in tcpConnInfoArray)
        {
            if (endPoint.Port == port)
            {
                isPortInUse = true;
                break;
            }
        }

        if (!isPortInUse)
        {
            foreach (IPEndPoint endPoint in udpConnInfoArray)
            {
                if (endPoint.Port == port)
                {
                    isPortInUse = true;
                    break;
                }
            }
        }

        return isPortInUse;
    }

调用方式:

 1 int port = 80; // 要检查的端口号
 2         bool isPortInUse = PortChecker.IsPortInUse(port);
 3         if (isPortInUse)
 4         {
 5             Console.WriteLine($"端口 {port} 被占用.");
 6         }
 7         else
 8         {
 9             Console.WriteLine($"端口 {port} 未被占用.");
10         }

 

标签:endPoint,isPortInUse,C#,占用,端口,ipGlobalProperties,IPEndPoint,port
From: https://www.cnblogs.com/AnYanaha/p/18023726

相关文章

  • leetcode day01
    链表类:#88.合并两个有序数组//classSolution:defmerge(self,nums1:List[int],m:int,nums2:List[int],n:int)->None:p1,p2,p=m-1,n-1,m+n-1whilep2>=0:#nums2还有要合并的元素#如果p1<0,那么走el......
  • Unity中的SerializeReference使用简介
    Unity默认可以序列化值类型,Serializable属性修饰的类型,派生自UnityEngine.Object的类型,通常这些类型已经足以供日常使用了.但是有时我们希望在编辑器面板上序列化一个接口或者抽象类,则需要用到SerializeReference属性.假定我们有一个接口IEatable,并实现了两个类Brea......
  • docker快速入门与基本指令
    参考资料:https://zhuanlan.zhihu.com/p/137895577https://www.runoob.com/docker/ubuntu-docker-install.html安装docker的安装相对简单,官方提供了一个安装命令:curl-fsSLhttps://test.docker.com-otest-docker.shsudoshtest-docker.sh可以使用piplist|grepd......
  • 2024-02-20-物联网C语言(10-文件)
    10.文件10.1文件的概念文件用来存放程序、文档、音频、视频数据、图片等数据的。文件就是存放在磁盘上的,一些数据的集合。在windows下可以通过写字板或记事本打开文本文件对文件进行编辑保存。写字板和记事本是微软程序员写的程序,对文件进行打开、显示、读写、关闭。作为......
  • javac不报错但不生成文件
    使用场景:在命令行cmd使用命令javac、java运行java程序,结果报错“错误:找不到或无法加载主类”后来发现javac虽然没有报错但是也没有生成对应的class文件解决方案:https://blog.csdn.net/qq_41999034/article/details/111604649我将环境变量放到最上面之后重启,发现在cmd中运行jav......
  • VMware vsphere 8 虚拟机安装Truenas core 13运行内存占满报警
    使用过Truenas的朋友都知道,在共享运行了一段时间之后,由于Truenas的内存缓存机制,导致系统显示Truenas虚拟机内存已用满,然后报警。首先可以确定,在Truenas系统中,系统内存缓存满并没有任何问题,但是在VMware的管理中并不了解Truenas的运行机制,这里的报警是一定要解决的,现在思路有两条......
  • Vector
    vector容器(重点,常用容器)1.数据结构:连续存储空间2.迭代器:随机迭代器3.vector容器动态增长原理​ 1.当存储空不够时,会开辟另一块大的空间,然后把数据拷贝过去,最后在销毁原来的空间​ 2.申请的空间,会比用户需求大一点​ 3.重新分配空间,那么原来的迭代器就会失效​ 所谓动......
  • go自定义了一个Code的错误代码类型
    第一次基于GoFrame框架开发项目,这是一个灵感来自PHPLaravel的Golang开发框架,使用之后其实自己并不是很喜欢,把一个开发语言的习惯直接迁移到另一个开发语言上,个人觉得并不是一个好主意,不过这次并不想讨论这个。同事之前的实践异常处理是每个框架都需要考虑的问题,GoFrame也有自己......
  • 【转】logback定期删除日志配置
    maxHistory:可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件,,例如设置为3的话,则3天之后,旧的日志就会被删除。但是如果现在才配置,重启后,3天以前不会自动删掉。totalSizeCap:可选节点,用来指定日志文件的上限大小,例如设置为3GB的话,那么到了这个值,就会删除旧......
  • [COGS 755]山海经:线段树
    这是一道美妙的线段树板子,能够有效地提升我们的读题,理解,思考和代码能力;综上,这是一道大模拟显然,对于这道题的数据范围,直接暴力是行不通的,只能拿30分:30分暴力#include<bits/stdc++.h>usingnamespacestd;constintN=1000005;constintinf=0x7fffffff;structtree{ int......