下記の簡単なJavaメソッドを書いて、Port 21がFedora Linuxで使用されているかどうかを確認しました。それは既に使用中であると報告しました。JavaのServerSocketがnetstat -antと同意しないのはなぜですか?
protected static boolean isPortInUseTCP(final int port)
{
Log.info("Checking TCP ports [" + port + "]", Verbosity.MEDIUM);
// Checks to see if the port is available (not in use), otherwise drop
// into the catch block if it is already used
try (ServerSocket ss = new ServerSocket(port))
{
ss.setReuseAddress(true);
Log.info("Port number [" + port + "] not found via TCP port", Verbosity.MEDIUM);
return false;
}
catch (IOException exc)
{
Log.info("Port number [" + port + "] found via TCP port", Verbosity.MEDIUM);
}
return true;
}
しかし、それは、Javaと一致するかどうかを確認するためにnetstat -ant
をチェックするとき、それは使用中としてポート21を表示されませんか?どうして?
例外が記録されたときにログに記録してください。 – f1sh