java.lang.Object
java.net.SocketAddress
java.net.InetSocketAddress
- 所有已实现的接口:
-
Serializable
此类实现了一个IP套接字地址(IP地址+端口号)。它也可以是一对(主机名+端口号),在这种情况下,将尝试解析主机名。如果解析失败,则称地址为未解析,但在某些情况下仍可用,比如通过代理连接。
它提供了一个不可变对象,用于套接字的绑定、连接或作为返回值。
通配符是一个特殊的本地IP地址。通常表示“任何”,只能用于bind操作。
- 自从:
- 1.4
- 参见:
-
Constructor Summary
ConstructorsConstructorDescriptionInetSocketAddress(int port) 创建一个套接字地址,其中IP地址是通配符地址,端口号是指定的值。InetSocketAddress(String hostname, int port) 从主机名和端口号创建套接字地址。InetSocketAddress(InetAddress addr, int port) 从IP地址和端口号创建套接字地址。 -
Method Summary
Modifier and TypeMethodDescriptionstatic InetSocketAddresscreateUnresolved(String host, int port) 从主机名和端口号创建一个未解析的套接字地址。final boolean将此对象与指定对象进行比较。final InetAddress获取InetAddress。final String获取hostname。final String返回主机名,或者如果没有主机名(使用文字创建的),则返回地址的字符串形式。final intgetPort()获取端口号。final inthashCode()返回此套接字地址的哈希码。final boolean检查地址是否已解析。toString()构造此InetSocketAddress的字符串表示形式。
-
Constructor Details
-
InetSocketAddress
public InetSocketAddress(int port) 创建一个套接字地址,其中IP地址是通配符地址,端口号是指定的值。有效的端口值介于0和65535之间。端口号为
零将允许系统在bind操作中选择一个临时端口。- 参数:
-
port- 端口号 - 抛出:
-
IllegalArgumentException- 如果端口参数超出有效端口值范围。
-
InetSocketAddress
从IP地址和端口号创建套接字地址。有效的端口值介于0和65535之间。端口号为
零将允许系统在bind操作中选择一个临时端口。null地址将分配通配符地址。- 参数:
-
addr- IP地址 -
port- 端口号 - 抛出:
-
IllegalArgumentException- 如果端口参数超出有效端口值范围。
-
InetSocketAddress
从主机名和端口号创建套接字地址。将尝试将主机名解析为InetAddress。如果尝试失败,地址将被标记为未解析。
如果存在安全管理器,则将调用其
checkConnect方法,参数为主机名,以检查解析主机名的权限。这可能导致SecurityException。有效的端口值介于0和65535之间。端口号为
零将允许系统在bind操作中选择一个临时端口。- 参数:
-
hostname- 主机名 -
port- 端口号 - 抛出:
-
IllegalArgumentException- 如果端口参数超出有效端口值范围,或者主机名参数为null。 -
SecurityException- 如果存在安全管理器并且拒绝解析主机名的权限。
-
-
Method Details
-
createUnresolved
从主机名和端口号创建一个未解析的套接字地址。不会尝试将主机名解析为InetAddress。地址将被标记为未解析。
有效的端口值介于0和65535之间。端口号为
零将允许系统在bind操作中选择一个临时端口。- 参数:
-
host- 主机名 -
port- 端口号 - 返回:
-
表示未解析套接字地址的
InetSocketAddress - 抛出:
-
IllegalArgumentException- 如果端口参数超出有效端口值范围,或者主机名参数为null。 - 自从:
- 1.5
-
getPort
public final int getPort()获取端口号。- 返回:
- 端口号。
-
getAddress
获取InetAddress。- 返回:
-
InetAddress或
null(如果未解析)。
-
getHostName
获取hostname。注意:如果地址是使用文字IP地址创建的,则此方法可能触发名称服务反向查找。- 返回:
- 地址的主机名部分。
-
getHostString
返回主机名,或者如果没有主机名(使用文字创建的),则返回地址的字符串形式。这样做的好处是不会尝试进行反向查找。- 返回:
- 主机名,或地址的字符串表示形式。
- 自从:
- 1.7
-
isUnresolved
public final boolean isUnresolved()检查地址是否已解析。- 返回:
-
如果主机名无法解析为
InetAddress,则返回true。
-
toString
构造此InetSocketAddress的字符串表示形式。此字符串是通过在InetAddress上调用InetAddress.toString()并连接端口号(带有冒号)来构造的。如果地址是IPv6地址,则IPv6文字将用方括号括起来,例如:
"localhost/[0:0:0:0:0:0:0:1]:80"。如果地址是未解析的,则在地址文字的位置显示<未解析>,例如"foo/<未解析>:80"。要检索主机名或地址的字符串表示形式,请使用
getHostString(),而不是解析此toString()方法返回的字符串。 -
equals
将此对象与指定对象进行比较。如果且仅当参数不为null且表示与此对象相同的地址时,结果为true。如果两个
InetSocketAddress实例表示相同的地址,则InetAddresses(或如果未解析,则为主机名)和端口号都相等。如果两个地址都未解析,则比较主机名和端口号。注意:主机名不区分大小写。例如“FooBar”和“foobar”被视为相等。 -
hashCode
public final int hashCode()返回此套接字地址的哈希码。
-