Java: Как я могу получить подключенный порт из InetAddress? - PullRequest
3 голосов
/ 05 августа 2009

Я пытаюсь создать сокет-сервер на основе Java NIO, используя Apache Mina. Мне действительно нужно знать порт удаленного хоста, а не только IP-адрес, и кажется, что Mina предоставляет только объект SocketAddress (который может быть передан в InetAddress). Я могу получить IP-адрес от InetAddress, но обычно я использую Socket.getPort (), чтобы получить номер порта, но Мина, кажется, скрывает эти низкоуровневые объекты. Есть ли другой способ? Спасибо!

Ответы [ 2 ]

8 голосов
/ 05 августа 2009

Понизить SocketAddress до InetSocketAddress (не InetAddress, что составляет не подкласс); это подвергает port accessor .

6 голосов
/ 05 августа 2009

У меня есть настоящая старая версия, но у меня это сработало,

public int getPort(SocketAddress address) {
    return ((InetSocketAddress) address).getPort();
}
...