【发布时间】:2014-10-28 23:29:51
【问题描述】:
在我的项目中,我有一个类可以检查 localhost 的所有端口,如果端口空闲则返回 true,否则返回 false。解决方案基于this answer
我需要以某种方式对其进行测试。有没有办法暂时使用该端口,然后将其释放回来?
我尝试使用 TcpListener Start 没有成功。如果我使用 TcpClient Connect 我得到 System.Net.Sockets.SocketException 无法建立连接,因为目标机器主动拒绝了它 127.0.0.1:myPort。
这是我使用的代码:
class TestPortLocker
{
public TcpClient client;
public TcpListener listener;
public void Lock(int port)
{
client = new TcpClient();
client.Connect("localhost", port);
//listener = new TcpListener(port);
//listener.Start();
}
public void Stop()
{
client.Close();
//listener.Stop();
}
}
【问题讨论】:
-
“我尝试使用 TcpListener 启动没有成功”是什么意思?
-
@usr 我的代码显示端口是空闲的
-
那么,那段代码有一个错误。那可能是什么错误?
-
@usr 该代码运行良好。当我启动一些使用该端口的应用程序时,代码显示该端口正在使用中。
-
那你为什么说代码显示“那个端口是空闲的”?你说你“没有成功”。
标签: c# port tcpclient tcplistener tcp-ip