为了账号安全,请及时绑定邮箱和手机立即绑定

在C#中,如何检查TCP端口是否可用?

在C#中,如何检查TCP端口是否可用?

繁星点点滴滴 2019-08-24 15:14:46
在C#中,如何检查TCP端口是否可用?在C#中使用TcpClient或通常连接到套接字我怎样才能首先检查我的机器上某个端口是否空闲?更多信息: 这是我使用的代码:TcpClient c;//I want to check here if port is free.c = new TcpClient(ip, port);
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

由于您正在使用a TcpClient,这意味着您正在检查打开的TCP端口。System.Net.NetworkInformation命名空间中有许多可用的好对象。

使用该IPGlobalProperties对象获取对象数组,TcpConnectionInformation然后可以查询端点IP和端口。


 int port = 456; //<--- This is your value
 bool isAvailable = true;

 // Evaluate current system tcp connections. This is the same information provided
 // by the netstat command line application, just in .Net strongly-typed object
 // form.  We will look through the list, and if our port we would like to use
 // in our TcpClient is occupied, we will set isAvailable to false.
 IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
 TcpConnectionInformation[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();

 foreach (TcpConnectionInformation tcpi in tcpConnInfoArray)
 {
   if (tcpi.LocalEndPoint.Port==port)
   {
     isAvailable = false;
     break;
   }
 }

 // At this point, if isAvailable is true, we can proceed accordingly.


查看完整回答
反对 回复 2019-08-24
  • 3 回答
  • 0 关注
  • 1023 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信