在我的项目中,我有一个类,它检查本地主机上的所有端口,如果端口是空的则返回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 Start没有成功。”? – usr 2014-09-04 10:01:38
@usr我的代码显示该端口是免费的 – kravasb 2014-09-04 10:39:02
那么,那个代码有一个错误。那个bug可能是什么? – usr 2014-09-04 11:30:13