在我的項目中,我有一個類,它檢查本地主機上的所有端口,如果端口是空的則返回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