我創建一個小工具,它讓我檢查這樣的指定IP和端口號端口的狀態:端口掃描:如何使掃描更快?
private void ScanPort(IPAddress address, int port)
{
using (TcpClient client = new TcpClient())
{
try
{
client.Connect(address, port);
txtDisplay.AppendText("Port: " + nudFrom.Value.ToString() +
" is open." + Environment.NewLine);
}
catch (SocketException)
{
txtDisplay.AppendText("Port: " + nudFrom.Value.ToString() +
" is closed." + Environment.NewLine);
}
}
}
的問題是,當端口是開放的大約需要一秒鐘來檢查,如果端口關閉的過程大約需要20秒的時間。
如何更快地檢查打開/關閉端口?
因爲拋出和捕捉異常很慢。如果你可以避免使用控制流的異常,你可能會解決速度問題。 –
@Cody Gray,當port打開時只是爲了使用client.connected,但是我不確定如何避免try/catch,因爲如果port被關閉,它會拋出一個異常。 – HelpNeeder