鸿蒙OS开发文档 鸿蒙OS InetSocketAddress

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 2

InetSocketAddress

java.lang.Object
|---java.net.SocketAddress
|---|---java.net.InetSocketAddress

public class InetSocketAddress
extends SocketAddress

此类实现了一个 IP 套接字地址(IP 地址 + 端口号),它也可以是一对(主机名 + 端口号),在这种情况下,将尝试解析主机名。 如果解析失败,则称该地址未解析,但仍可在某些情况下使用,例如通过代理连接。

它提供了一个不可变的对象,供套接字用于绑定、连接或作为返回值。

通配符是一个特殊的本地 IP 地址。 它通常表示“任何”,只能用于绑定操作。

构造函数摘要

构造函数描述
InetSocketAddress(int port)创建一个套接字地址,其中 IP 地址是通配符地址,端口号是指定值。
InetSocketAddress(String hostname, int port)从主机名和端口号创建套接字地址。
InetSocketAddress(InetAddress addr, int port)从 IP 地址和端口号创建套接字地址。

方法总结

修饰符和类型方法描述
static InetSocketAddresscreateUnresolved(String host, int port)从主机名和端口号创建一个未解析的套接字地址。
booleanequals(Object obj)将此对象与指定对象进行比较。
InetAddressgetAddress()获取 InetAddress。
StringgetHostName()获取主机名。
StringgetHostString()如果没有主机名(它是使用文字创建的),则返回主机名或地址的字符串形式。
intgetPort()获取端口号。
inthashCode()返回此套接字地址的哈希码。
booleanisUnresolved()检查地址是否已解析。
StringtoString()构造此 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 之间。端口号为零将使系统在绑定操作中选择一个临时端口。

空地址将分配通配符地址。

参数:

参数名称参数描述
addrIP 地址
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

返回:

此套接字地址的哈希码值。