5

我正在尝试使用 Apache Mina 构建基于 Java NIO 的套接字服务器。我真的需要知道远程主机的端口,而不仅仅是 IP 地址,而且似乎 Mina 只公开了一个 SocketAddress(可以向下转换为 InetAddress)对象。我可以从 InetAddress 获取 IP 地址,但我通常使用 Socket.getPort() 来获取端口号,但 Mina 似乎掩盖了这些低级对象。还有其他方法吗?谢谢!

4

2 回答 2

11

向下SocketAddress转换 to InetSocketAddress(不是InetAddress,它不是子类);这暴露了一个port访问器

于 2009-08-04T20:29:50.023 回答
7

我有一个真正的旧版本,但这对我有用,

public int getPort(SocketAddress address) {
    return ((InetSocketAddress) address).getPort();
}
于 2009-08-04T20:31:55.853 回答