c#检测端口是否被占用的简单实例
当我们要创建一个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();
}
相关推荐
-
解析关于wamp启动是80端口被占用的问题
问题如下:网上有关于这个处理办法,说道:VS2010在更新了SP1后,会在开机时自动启动一个服务,占用WAMP的80端口,导致WAMP无法正常启动Apache.提示信息:Your port 80 is actually used by :Server: Microsoft-HTTPAPI/2.0Press Enter to exit...解决办法如下: 1. 进入控制面板→管理工具→服务. 2. 停止[Web 部署代理服务],并设置为手动或禁用状态,以防止下次开机再次占用Apache的80端口.
-
apache 80端口被iis或其他服务占用怎么办
iis修改80端口的方法 如果要修改iis不使用80方法很简单,在我们的iis管理器中找到,iis管理然后把80改成81即可 Apache修改监听端口的方法为: 打开 httpd.conf 修改 Listen 80 为 L第二世界整理发布isten 81 Apache可以同时监听一个以上的端口实现多个Http服务 只要添一行 如 Listen 82 即可 同样IIS也可以修改默认的端口以避开冲突 修改方法类似 打开 Administrative Tools -> Internet Service
-
Serv-U占用IIS的80端口造成冲突导致iis无法运行的解决方法(serv_u6-8版本)
我们是怎么发现serv_u占用iis的80端口的呢,大家可以参考我们的这篇文章IIS 另一个程序正在使用此文件,进程无法访问. 如何查看哪个程序打开了tcp 80端口呢?使用"开放端口查看软件Active ports"就可以一目了然了. 下面是具体的解决方法:serv_u 6版本:大家可以通过设置下 pasv端口范围即可.serv_u 7-8版本 很多人在安装的时候没太注意,默认情况下开启了80和443端口的监听,如果你的这台服务器上有IIS在运行的话,便会造成冲突.冲突的现象表现在两
-
java中tomcat的80端口被占用问题解决
今天遇见了这个端口被占用问题 然后各种百度 先是说 用命令 netstat -a -n -o 最后一个选项表示连接所在进程id. 找到8080端口的PID然后打开任务管理器, 切换到进程选项卡, 在菜单栏选择查看->选择列, 选择PID. 在列表中找到PID对应的进程就可以了然后发现占用端口的进程的PID为4 可无奈如何关闭都关闭不了这个进程 于是又百度了pid为4的进程 果然找到同样问题 解决办法是把world wide web publishing service这个服务关闭就没事了.pid
-
服务器 UDP端口占用几千个的解决办法
先使用netstat -anb命令显示服务器上每个端口所对应的监听程序,因为显示的太多,无法一一看过来,所以只能采用: netstat -anb>C:\1.txt 命令,把输出结果存到C盘根目录下的1.txt文件中,慢慢查看. 查看后,得知所有这些udp端口均为dns.exe程序监听,这台服务器安装了DNS服务,难道中毒了? 在命令提示符下,输入: cd c: 切换C盘根目录,执行: dir dns.exe /s/a 命令进行全盘检索dns.exe程序,经过N久之后,系统检索出5个dns.exe
-
Linux下查看端口占用进程号,程序名的方法
linux下查看端口占用情况: 1. 查看哪个进程占用了819端口: case9-sghfofo:/usr/local/cnbj/tomcat-bj/bin # lsof -i:859 运行后的结果: COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME java 24907 root 31u IPv4 248905027 TCP *:859 (LISTEN) 由以上我们知道了859端口被进程号为24907的进程占用了, 是个java进程. 2. 查看进程
-
Myeclipse工程发布时端口占用问题的解决方法
解决My eclipse 工程发布时端口占用问题 如果运行后如图的错,需要进行如下操作来解决: a:打开cmd,输入netstat -ano 找到本地地址为8080的最后一项的数字,这个数字就是端口号. b:再输入taskkill /t /pid 端口号数字 /f 来关闭此进程. c:注意每个命令后面不要加 ; 结尾,运行以上命令再重新运行工程即可.
-
Tomcat 启动错误(8080端口被占用)处理方法
错误描述: 2009-7-12 15:40:35 org.apache.coyote.http11.Http11BaseProtocol start 严重: Error starting endpoint java.net.BindException: Address already in use: JVM_Bind:8080 at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:298)
-
80端口被Pid为4的未知程序占用导致Apache不能启动的解决方法
今天在使用WAMP的时候发现它无法正常启动,一直卡在黄色的图标那里,我怀疑是80端口被占用了,于是在cmd里输入:netstat -ano,发现: 80端口被占用,而且PID是4,在任务管理器中查找,发现根本没有PID为4的进程. 后来我发现是一个叫做W3SVC的进程占用了80端口,它的描述是World Wide Web Publishing Service.停止这个进程之后,重新启动WAMP,就解决这个问题了.
-
Linux/window下怎样查看某个端口被哪个程序/进程占用
Windows: C:/Users/ewanbao>netstat -aon|findstr "123" TCP 127.0.0.1:55123 0.0.0.0:0 LISTENING 5092 TCP 127.0.0.1:55123 127.0.0.1:55124 ESTABLISHED 5092 TCP 127.0.0.1:55124 127.0.0.1:55123 ESTABLISHED 5092 UDP 0.0.0.0:123 *:* 1416 UDP [::]:123
随机推荐
- PHP中的递归正则表达式用法分享
- Java修饰符 abstract,static,final 的区别详解
- iOS自定义UIScrollView的滚动条实例代码
- python中Pycharm 输出中文或打印中文乱码现象的解决办法
- php xml留言板 xml存储数据的简单例子
- Android控件之AnalogClock与DigitalClock用法实例分析
- JavaScript 递增、递减运算符实例
- 深入探究JavaScript中for循环的效率问题及相关优化
- 关于ASP代码的加密的几个方法
- Nginx解决转发地址时跨域的问题
- 获取客户端电脑日期时间js代码(jquery)
- 一次非法关机导致mysql数据表损坏的实例解决
- javascript实现全角与半角字符的转换
- 简单实现JS对dom操作封装
- WPF实现画线动画效果
- vue加载自定义的js文件方法
- Centos 6.9环境下创建用户及删除用户的方法
- Centos7的apache网站环境搭建wordpress
- iOS 10自定义相机功能
- 详解基于mpvue微信小程序下载远程图片到本地解决思路