0
我想製作一個「通用客戶端」,可以連接到任何給定IP地址的服務器。我想知道是否有辦法找到端口號。我試過在一段時間內使用for循環(true)。 for循環將終止於65535,即可能的最高端口號。每次它循環通過for循環時,它都會創建一個新的Socket,其中包含正在測試的ip地址和端口號。如何連接到沒有java端口號的服務器?
import java.io.IOException;
import java.net.*;
public class MainClass {
static String serverIp = "127.0.0.1"; // or what ever ip the server is on
public static void main(String[] args) {
try {
while (true) {
for (int x = 1; x == 65535; x++) {
Socket serverTest = new Socket(
InetAddress.getByName(serverIp), x);
if(serverTest.isConnected()){
connect(serverTest.getPort());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static void connect(int port) throws UnknownHostException, IOException {
Socket serverTest = new Socket(InetAddress.getByName(serverIp), port);
}
}
'isConnected()'測試是徒勞的。如果它沒有連接,它就不會被構造:構造函數會拋出某種「IOException」。 – EJP 2014-11-06 23:12:22
我認爲這不是一個好方法。如果你在Linux中工作,然後使用一些命令,你可以通過你連接的端口找到 – 2014-11-07 04:55:47