Ich habe unten eine einfache Java-Methode geschrieben, um zu überprüfen, ob Port 21 in Fedora Linux verwendet wird. Es wurde gemeldet, dass es bereits verwendet wird.Warum stimmt ServerSocket in Java nicht mit netstat -ant überein?
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;
}
Aber wenn netstat -ant
zu überprüfen, ob es mit Java übereinstimmt, zeigt es nicht Port 21, wie in dem Einsatz nach oben? Warum?
Bitte melden Sie Ihre Ausnahmen, wenn sie gefangen werden, Sie vergessen sie einfach. – f1sh