Socket.getPort()
не делает то, что вы хотите?Или вы имеете в виду, что вам нужен локальный порт (опять же, есть Socket.getLocalPort()
?). Если бы вы могли привести работающий пример того, что вам нужно, это было бы легче понять.
Вот краткий пример:
import java.net.*;
public class Test {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(50000);
while (true) {
Socket s = ss.accept();
System.out.println("Local: " + s.getLocalPort() +
"; Remote: " + s.getPort());
}
}
}
Если вы запустите этот код и подключитесь к нему несколько раз, вы получите что-то вроде этого:
Local: 50000; Remote: 17859
Local: 50000; Remote: 17866
Local: 50000; Remote: 17872
Так что getLocalPort()
возвращает порт, который был указан вServerSocket
конструктор, но getPort()
каждый раз возвращает другой порт.