检测端口是否被占用

        当我们要创建一个Tcp/Ip Server connection ,我们需要一个范围在1000到65535之间的端口 。

但是本机一个端口只能一个程序监听,所以我们进行本地监听的时候需要检测端口是否被占用。

        命名空间System.Net.NetworkInformation下定义了一个名为IPGlobalProperties的类,我们使用这个类可以获取所有的监听连接,然后判断端口是否被占用,代码如下:

public static bool PortInUse(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;
}

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

static void Main(string[] args)
{
    HttpListener httpListner = new HttpListener();
    httpListner.Prefixes.Add("http://*:8080/");
    httpListner.Start();

    Console.WriteLine("Port: 8080 status: " + (PortInUse(8080) ? "in use" : "not in use"));

    Console.ReadKey();

    httpListner.Close();
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小鄧子的技术博客专栏

【译】根据图像优先级排序请求队列

你可能还没遇到过这种特殊场景,但是如果你需要为图像的加载分配优先级,则可以使用.priority()。这个方法涉及到三个代表优先级的常量,HIGH,MEDIUM...

872
来自专栏分布式系统和大数据处理

C#网络编程(接收文件) - Part.5

这篇文章将完成 Part.4 中剩余的部分,它们本来是一篇完整的文章,但是因为上一篇比较长,合并起来页数太多,浏览起来可能会比较不方便,我就将它拆为两篇了,本文...

1223
来自专栏漫漫深度学习路

tensorflow自定义op:work_shard

强行解释 work_shard 在学习 tensorflow 自定义 op 的时候碰到的,google 了一下,也没有找到详细的介绍,难道是姿势不对?? ...

2987
来自专栏AILearning

使用GPU

支持的设备 在典型的系统中,有多个计算设备。在TensorFlow中,支持的设备类型是CPU和GPU。它们被表示为strings。例如: "/cpu:0":...

1895
来自专栏向治洪

Android 增量更新和升级

在年初的时候,尝试了一把热修复技术,当时选择的是阿里的andfix,使用起来也很简单,这里就不在多少,如果你对andfix有兴趣请链接:点击打开链接。虽然网上将...

4959
来自专栏BioIT-TECH

癌症中克隆种群结构统计推断分析软件PyClone安装小记

PyClone 是一种用于推断癌症中克隆种群结构的统计模型。 它是一种贝叶斯聚类方法,用于将深度测序的体细胞突变集分组到假定的克隆簇中,同时估计其细胞流行率(p...

4142
来自专栏JackieZheng

可视化(番外篇)——在Eclipse RCP中玩转OpenGL

  最近在看有关Eclipse RCP方面的东西,鉴于Gephi是使用opengl作为绘图引擎,所以,萌生了在Eclipse RCP下添加画布,使用opengl...

1925
来自专栏NetCore

Visual C#.Net网络程序开发-Tcp篇(3) 祥细内容:

综合运用上面的知识,下面的实例实现了简单的网络通讯-双机互连,针对客户端和服务端分别编制了应用程序。客户端创建到服务端的连接,向远程主机发送连接请求连接信号,并...

21710
来自专栏C#

Apple的LZF算法解析

    有关LZF算法的相关解析文档比较少,但是Apple对LZF的开源,可以让我们对该算法进行一个简单的解析。LZFSE 基于 Lempel-Ziv ,...

2787
来自专栏挖坑填坑

.net core 项目中几款常用类库收藏

例子源码:https://github.com/yiershan/DonetSpider

1183

扫码关注云+社区