已解决: 问题是“病毒”或类似劫持端口的东西。OBS:病毒劫持了端口,端口没有出现在 netstat -an 或正在使用的端口的 TCPView 上。
我使用了 AVG 杀毒软件来清除病毒。另一个防病毒软件不起作用,只有 AVG。
我做了这个程序来检查端口是否可用:
package com.test;
import java.io.IOException;
import java.net.DatagramSocket;
import java.net.ServerSocket;
public class Test {
public static void main(String[] args) {
System.out.println("Port available: " + available(62974));
}
public static boolean available(int port) {
ServerSocket ss = null;
try {
ss = new ServerSocket(port);
ss.setReuseAddress(true);
return true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return false;
}
}
响应是错误的。
抛出的异常是:
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at java.net.ServerSocket.<init>(ServerSocket.java:106)
at com.dgs.test.Test.available(Test.java:16)
at com.dgs.test.Test.main(Test.java:9)
我正在使用这个端口:62974
但我检查控制台/提示-dos:
netstat -ano
该端口不在列表中。
我没有使用任何防火墙,我禁用了它
我是否在做正确的事情来查看端口是否可用?
这是一个“不可用”的端口吗?