鸿蒙OS InetSocketAddress

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 InetSocketAddress createUnresolved(String host, int port) 从主机名和端口号创建一个未解析的套接字地址。
boolean equals(Object obj) 将此对象与指定对象进行比较。
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

返回:

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

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《鸿蒙OS InetSocketAddress》
文章链接:https://zhuji.vsping.com/313613.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。