我正在尝试使用Apache Mina构建基于Java NIO的套接字服务器。我真的需要知道远程主机的端口,而不仅仅是IP地址,而且似乎Mina只公开了SocketAddress(可以向下转换为InetAddress)对象。我可以从InetAddress获取IP地址,但我通常使用Socket.getPort()来获取端口号,但是Mina似乎模糊了这些低级对象。还有另外一种方法吗?谢谢!
答案 0 :(得分:8)
将SocketAddress
转发给InetSocketAddress
(不是InetAddress
,而不是一个子类);这会暴露port
accessor。
答案 1 :(得分:6)
我有一个真正的旧版本,但这对我有用,
public int getPort(SocketAddress address) {
return ((InetSocketAddress) address).getPort();
}