我正在尝试获取套接字连接的IP地址并以字符串形式表示。
我正在使用一个框架,该框架返回接收消息的SocketAddress
。如何将其转换为InetSocketAddress
或InetAddress
?
我正在尝试获取套接字连接的IP地址并以字符串形式表示。
我正在使用一个框架,该框架返回接收消息的SocketAddress
。如何将其转换为InetSocketAddress
或InetAddress
?
InetSocketAddress
,那么只需将其转换为相应类型即可:SocketAddress sockAddr = ...
InetSocketAddress inetAddr = (InetSocketAddress)sockAddr;
您可以在inetAddr
上调用getAddress()
方法,以获取与其关联的InetAddress
对象。
InetSocketAddress isa = (InetSocketAddress) socketAddress;
if (socketAddress instanceof InetSocketAddress) {
InetSocketAddress isa = (InetSocketAddress) socketAddress;
// invoke methods on "isa". This is now safe - no risk of exceptions
}
可以对其他SocketAddress
子类执行相同的检查。
实际上,SocketAddress
是一个抽象类,因此您会收到它的一些子类。您尝试将返回的 SocketAddress
强制转换为 InetSocketAddress
了吗?