C#实时检测端口占用情况
在TCP/IP协议中,服务端需要去监听客户端的端口,开始监听,我们需要检测使用的端口是否被占用,获取系统当前使用的所有端口号,用此端口进行匹配即可。
代码如下
internal static Boolean IsPortOccupedFun2(Int32 port)
{
System.Net.NetworkInformation.IPGlobalProperties iproperties = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties();
System.Net.IPEndPoint[] ipEndPoints = iproperties.GetActiveTcpListeners();
foreach (var item in ipEndPoints)
{
if (item.Port == port)
{
return true;
}
}
return false;
}
而如果需要实时的刷新端口占用情况,并用其进行TCP连接,希望自己占用的端口在呈现给自己时显示不被占用,例如当服务端UI界面显示监听192.168.0.162IP的客户端时用的9922端口,而不希望在同一DataGridView表中,此行的后面“端口是否被占用“”列中显示已被占用的红色X号图标 , 即在检测端口状态时如果是与此IP通讯占用,排除此IP,如下图

代码如下
static List<IpAndPort> IpAndPortList = new List<IpAndPort>();
static List<string> PortList = new List<string>(); internal static Boolean IsPortOccupedFun2(Int32 port, IpAndPort m_PortList)
{
System.Net.NetworkInformation.IPGlobalProperties iproperties = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties();
System.Net.IPEndPoint[] ipEndPoints = iproperties.GetActiveTcpListeners(); if (!PortList.Contains(m_PortList.port))
{
PortList.Add(m_PortList.port);
IpAndPortList.Add(m_PortList);
}
foreach (var item in ipEndPoints)
{ if (item.Port == Convert.ToInt32(m_PortList.port))
{
foreach (IpAndPort ipPort in IpAndPortList)
{
if (ipPort.ip.Equals(m_PortList.ip) && ipPort.port.Equals(m_PortList.port))
{
return false;
}
}
return true;
}
}
return false;
} public class IpAndPort
{
public string ip;
public string port;
}
C#实时检测端口占用情况的更多相关文章
- ubuntu系统检测端口占用情况
参考链接: https://blog.csdn.net/qwfys200/article/details/80837036 命令: $ sudo netstat -tupln
- 26. linux查看端口占用情况
linux系统下,查看端口占用情况的命令:lsof -i[root@www ~]# lsof -i
- windows 如何查看端口占用情况?
原文来自:http://www.iteye.com/topic/1117270 开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这 ...
- 在windows和linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等
一.在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&quo ...
- RC-50221 问题解决 - netstat 查看端口占用情况
查看端口占用情况 netstat -an|grep LIST|grep 15 数据库监听占用情况. netstat -an|grep 1521 1521为 ...
- Windows系统端口占用情况检查脚本
写了一段检查Windows下端口占用情况的脚本,代码如下: function checkPid($result,$port){ $port = $port.split(":")[1 ...
- 查看Linux下端口占用情况的命令
在使用Linux系统的过程中,有时候会遇到端口被占用而导致服务无法启动的情况.比如HTTP使用80端口,但当启动Apache时,却发现此端口正在使用. 这种情况大多数是由于软件冲突.或者默认端口设置不 ...
- 【转】windows 如何查看端口占用情况?
开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选&qu ...
- Mac查看端口占用情况
Mac下使用lsof(list open files)来查看端口占用情况,lsof 是一个列出当前系统打开文件的工具. 使用 lsof 会列举所有占用的端口列表: $ lsof 使用less可以用于分 ...
随机推荐
- System.load()与System.loadLibrary()
Java load 和 loadlibrary方法的区别 1. 相同点: 两个方法都是用来装载dll文件,不论是JNI库文件还是非JNI库文件.本地方法在被调用时都需要通过这两发方法之一将其加载至内 ...
- python学习 day21 (3月28日)----(抽象类 多态 nametuple dump)
不要因为走的路太久了,而忘记了为了什么而出发. 提前作准备了吗?把思维导图的东西做了吗? 和工作了几年的人,相比,是不是相同的水平,如果要写简历的话. 一边学习,一边复习. 小就是大,少就是多. 1. ...
- 2019.01.21 bzoj2989: 数列(二进制分组+主席树)
传送门 二进制分组入门题. 主席树写错调题2h+2h+2h+体验极差. 题意简述:给一堆点,支持加入一个点,询问有多少个点跟(x,y)(x,y)(x,y)曼哈顿距离不超过kkk. 思路:题目要求的是对 ...
- 使用express框架和mongoose在MongoDB删除数据
使用remove()删除数据 remove({},function(err,doc){}) // 删除所有数据 remove({age:18},function(err,doc){}); //删除指 ...
- jQuery警告/确认/提示弹出对话框效果(替换传统JavaScript下的提示框)
http://www.51xuediannao.com/js/jquery/jquery_tsk/ http://www.jq22.com/demo/jqueryConfirm20160413/
- springboot+mysql实现quartz集群搭建
一.基本概念 Quartz核心的概念:scheduler任务调度.Job任务.Trigger触发器.JobDetail任务细节. scheduler任务调度: 是最核心的概念,需要把JobDetail ...
- 分分钟搞懂union与union all
SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每 ...
- ZOJ 3156 Taxi (二分 + 二分匹配)
题意:给定 n 个人坐标, m 辆车的坐标,还有人的速度,要求每个人要进一辆不同的车,问你所有都进车的最短时间是多少. 析:首先二分时间 mid,很明显就是最后那个人进车的时间,然后如果把第 i 个人 ...
- matlab生成滤波器系数组
用MATLAB生成的滤波器系数是可以控制增益的,一般归一化的目的是控制增益为1.滤波器的阶数由数据速率,过渡带宽.通带波纹和阴带波纹来决定, 在下图中FS,Apass,Astop固定之后,只要Fpas ...
- revoke回收权限的小问题
revoke回收权限的时候,原理是从user/db/tables_priv/columns_priv四个表上delete数据: on *.*的权限在user表上 on xx.*的权限在db表上 on ...