InetSocketAddress
java.lang.Object
|—java.net.SocketAddress
|—|—java.net.InetSocketAddress
public class InetSocketAddress
extends SocketAddress
此类实现了一个 IP 套接字地址(IP 地址 + 端口号),它也可以是一对(主机名 + 端口号),在这种情况下,将尝试解析主机名。 如果解析失败,则称该地址未解析,但仍可在某些情况下使用,例如通过代理连接。
它提供了一个不可变的对象,供套接字用于绑定、连接或作为返回值。
通配符是一个特殊的本地 IP 地址。 它通常表示“任何”,只能用于绑定操作。
构造函数摘要
构造函数描述
InetSocketAddress(intport)
创建一个套接字地址,其中IP地址是通配符地址,端口号是指定值。
InetSocketAddress(Stringhostname,intport)
从主机名和端口号创建套接字地址。
InetSocketAddress(InetAddressaddr,intport)
从IP地址和端口号创建套接字地址。
方法总结
修饰符和类型方法描述
staticInetSocketAddress
createUnresolved(Stringhost,intport)
从主机名和端口号创建一个未解析的套接字地址。
boolean
equals(Objectobj)
将此对象与指定对象进行比较。
InetAddress
getAddress()
获取InetAddress。
String
getHostName()
获取主机名。
String
getHostString()
如果没有主机名(它是使用文字创建的),则返回主机名或地址的字符串形式。
int
getPort()
获取端口号。
int
hashCode()
返回此套接字地址的哈希码。
boolean
isUnresolved()
检查地址是否已解析。
String
toString()
构造此InetSocketAddress的字符串表示形式。
从类 java.lang.Object 继承的方法
clone,finalize,getClass,notify,notifyAll,wait,wait,wait
构造函数详细信息
InetSocketAddress
public InetSocketAddress(int port)
创建一个套接字地址,其中 IP 地址是通配符地址,端口号是指定值。
有效端口值介于 0 和 65535 之间。端口号为零将使系统在绑定操作中选择一个临时端口。
参数:
参数名称参数描述
port
端口号
Throws:
Throw名称Throw描述
IllegalArgumentException
如果端口参数超出指定的有效端口值范围。
InetSocketAddress
public InetSocketAddress(InetAddress addr, int port)
从 IP 地址和端口号创建套接字地址。
有效端口值介于 0 和 65535 之间。端口号为零将使系统在绑定操作中选择一个临时端口。
空地址将分配通配符地址。
参数:
参数名称参数描述
addr
IP地址
port
端口号
Throws:
Throw名称Throw描述
IllegalArgumentException
如果端口参数超出指定的有效端口值范围。
InetSocketAddress
public InetSocketAddress(String hostname, int port)
从主机名和端口号创建套接字地址。
将尝试将主机名解析为 InetAddress。 如果该尝试失败,该地址将被标记为未解析。
如果有安全管理器,则调用其 checkConnect 方法,并以主机名作为其参数,以检查解决它的权限。 这可能会导致 SecurityException。
有效端口值介于 0 和 65535 之间。端口号为零将使系统在绑定操作中选择一个临时端口。
参数:
参数名称参数描述
hostname
主机名
port
端口号
Throws:
Throw名称Throw描述
IllegalArgumentException
如果端口参数超出有效端口值的范围,或者主机名参数为空。
SecurityException
如果存在安全管理器并且拒绝解析主机名的权限。
方法详情
createUnresolved
public static InetSocketAddress createUnresolved(String host, int port)
从主机名和端口号创建一个未解析的套接字地址。
不会尝试将主机名解析为 InetAddress。 该地址将被标记为未解析。
有效端口值介于 0 和 65535 之间。端口号为零将使系统在绑定操作中选择一个临时端口。
参数:
参数名称参数描述
host
主机名
port
端口号
返回:
表示未解析的套接字地址的 InetSocketAddress
Throws:
Throw名称Throw描述
IllegalArgumentException
如果端口参数超出有效端口值的范围,或者主机名参数为空。
getPort
public final int getPort()
获取端口号。
返回:
端口号。
getAddress
public final InetAddress getAddress()
获取 InetAddress。
返回:
InetAdress 或 null 如果它未解析。
getHostName
public final String getHostName()
获取主机名。 注意:如果地址是使用文字 IP 地址创建的,则此方法可能会触发名称服务反向查找。
返回:
地址的主机名部分。
getHostString
public final String getHostString()
如果没有主机名(它是使用文字创建的),则返回主机名或地址的字符串形式。 这样做的好处是不尝试反向查找。
返回:
地址的主机名或字符串表示形式。
isUnresolved
public final boolean isUnresolved()
检查地址是否已解析。
返回:
如果无法将主机名解析为 InetAddress,则为 true。
toString
public String toString()
构造此 InetSocketAddress 的字符串表示形式。 此字符串是通过在 InetAddress 上调用 toString() 并连接端口号(使用冒号)来构造的。 如果地址未解析,则冒号之前的部分将仅包含主机名。
覆盖:
类 Object 中的 toString
返回:
此对象的字符串表示形式。
equals
public final boolean equals(Object obj)
将此对象与指定对象进行比较。 当且仅当参数不为空并且它表示与此对象相同的地址时,结果才为真。
如果 InetAddresses(或主机名,如果它未解析)和端口号相等,则 InetSocketAddress 的两个实例表示相同的地址。 如果两个地址都未解析,则比较主机名和端口号。 注意:主机名不区分大小写。 例如 “FooBar” 和 “foobar” 被认为是相等的。
覆盖:
类 Object 中的等于
参数:
参数名称参数描述
obj
要比较的对象。
返回:
如果对象相同,则为 true; 否则为false。
hashCode
public final int hashCode()
返回此套接字地址的哈希码。
覆盖:
类 Object 中的 hashCode
返回:
此套接字地址的哈希码值。