鸿蒙OS开发文档 第54页

鸿蒙OS PasswordAuthentication

PasswordAuthentication java.lang.Object |—java.net.PasswordAuthentication public final class PasswordAuthentication extends Object PasswordAuthentication 类是 Authenticator 使用的数据持有者。 它只是用户名和密码的存储库。 构造函数摘要 构造函数 描述 PasswordAuthentication(String userName, char[] password) 从给定的用户名和密码创建一个新的 PasswordAuthentication 对象。 方法总结 修饰符和类型 方法 描述 char[] getPassword() 返回用户密码。 String getUserName() 返回用户名。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 PasswordAuthentication public PasswordAuthentication(String userName, char[] password) 从给定的用户名和密码创建一个新的 PasswordAuthentication 对象。 请注意,给定的用户密码在存储到新的 PasswordAuthentication 对象之前会被克隆。 参数: 参数名称 参数描述 userName 用户名 password 用户密码 方法详情 getUserName public String getUserName() 返回用户名。 返回: 用户名 getPassword public char[] getPassword() 返回用户密码。 请注意,此方法返回对密码的引用。 调用者有责任在不再需要密码信息后将其清零。 返回: 密码

鸿蒙OS NetworkInterface

NetworkInterface java.lang.Object |—java.net.NetworkInterface public final class NetworkInterface extends Object 此类表示由名称和分配给该接口的 IP 地址列表组成的网络接口。 它用于标识加入多播组的本地接口。 接口通常以诸如“le0”之类的名称而闻名。 方法总结 修饰符和类型 方法 描述 boolean equals(Object obj) 将此对象与指定对象进行比较。 static NetworkInterface getByIndex(int index) 获取给定索引的网络接口。 static NetworkInterface getByInetAddress(InetAddress addr) 搜索绑定了指定 Internet 协议 (IP) 地址的网络接口的便捷方法。 static NetworkInterface getByName(String name) 搜索具有指定名称的网络接口。 String getDisplayName() 获取此网络接口的显示名称。 byte[] getHardwareAddress() 返回接口的硬件地址(通常是 MAC),如果它有一个并且在当前权限下可以访问它。 int getIndex() 返回此网络接口的索引。 EnumerationInetAddress getInetAddresses() 返回 Enumeration 的便捷方法,其中所有或部分 InetAddresses 绑定到此网络接口。 ListInterfaceAddress getInterfaceAddresses() 获取此网络接口的所有或部分 InterfaceAddresses 的列表。 int getMTU() 返回此接口的最大传输单元 (MTU)。 String getName() 获取此网络接口的名称。 static EnumerationNetworkInterface getNetworkInterfaces() 返回这台机器上的所有接口。 NetworkInterface getParent() 如果这是子接口,则返回此接口的父 NetworkInterface;如果它是物理(非虚拟)接口或没有父接口,则返回 null。 EnumerationNetworkInterface getSubInterfaces() 获取连接到此网络接口的所有子接口(也称为虚拟接口)的枚举。 int hashCode() 返回对象的哈希码值。 boolean isLoopback() 返回网络接口是否为环回接口。 boolean isPointToPoint() 返回网络接口是否为点对点接口。 boolean isUp() 返回网络接口是否已启动并正在运行。 boolean isVirtual() 返回此接口是否为虚拟接口(也称为子接口)。 boolean supportsMulticast() 返回网络接口是否支持多播。 String toString() 返回对象的字符串表示形式。 从类 java.lang.Object 继承的方法 clone, finalize, getClass, notify, notifyAll, wait, wait, wait 方法详情 getName public String getName() 获取此网络接口的名称。 返回: 此网络接口的名称 getInetAddresses public EnumerationInetAddress getInetAddresses() 返回 Enumeration 的便捷方法,其中所有或部分 InetAddresses 绑定到此网络接口。 如果有安全管理器,则为每个 InetAddress 调用其 checkConnect 方法。 只有 checkConnect 未引发 SecurityException 的 InetAddress 才会在枚举中返回。 但是,如果调用者具有 NetPermission(“getNetworkInformation”) 权限,则返回所有 InetAddresses。 返回: 一个...

鸿蒙OS NetPermission

NetPermission java.lang.Object |—java.security.Permission |—|—java.security.BasicPermission |—|—|—java.net.NetPermission public final class NetPermission extends BasicPermission 此类用于各种网络权限。 NetPermission 包含名称(也称为“目标名称”)但没有操作列表; 您要么拥有命名权限,要么没有。 目标名称是网络权限的名称(见下文)。 命名约定遵循分层属性命名约定。 此外,星号可能出现在名称的末尾,跟在“.”之后,或者单独出现,表示通配符匹配。 例如:“foo”。 和 “” 表示通配符匹配,而 “foo” 和 “ab” 不表示。 下表列出了所有可能的 NetPermission 目标名称,并为每个名称提供了权限允许的内容的描述以及授予代码权限的风险的讨论。 构造函数摘要 构造函数 描述 NetPermission(String name) 创建具有指定名称的新 NetPermission。 NetPermission(String name, String actions) 创建具有指定名称的新 NetPermission 对象。 方法总结 从类 java.security.BasicPermission 继承的方法 getActions, implies 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 从类 java.security.Permission 继承的方法 checkGuard, getName, newPermissionCollection 构造函数详细信息 NetPermission public NetPermission(String name) 创建具有指定名称的新 NetPermission。 该名称是 NetPermission 的符号名称,例如“setDefaultAuthenticator”等。星号可以出现在名称的末尾,跟在“.”之后,或者单独出现,表示通配符匹配。 参数: 参数名称 参数描述 name NetPermission 的名称。 Throws: Throw名称 Throw描述 NullPointerException 如果name为null。 IllegalArgumentException 如果name为empty。 NetPermission public NetPermission(String name, String actions) 创建具有指定名称的新 NetPermission 对象。 该名称是 NetPermission 的符号名称,且操作字符串当前未使用且应为空。 参数: 参数名称 参数描述 name NetPermission 的名称。 actions 应该为空。 Throws: Throw名称 Throw描述 NullPointerException 如果name为null。 IllegalArgumentException 如果name为empty。

鸿蒙OS MulticastSocket

MulticastSocket java.lang.Object |—java.net.DatagramSocket |—|—java.net.MulticastSocket public class MulticastSocket extends DatagramSocket 多播数据报套接字类对于发送和接收 IP 多播数据包很有用。 MulticastSocket 是一个 (UDP) DatagramSocket,具有加入 Internet 上其他多播主机“组”的附加功能。 多播组由 D 类 IP 地址和标准 UDP 端口号指定。 D 类 IP 地址的范围为 224.0.0.0 到 239.255.255.255(含)。 地址 224.0.0.0 已保留,不应使用。 可以通过首先使用所需端口创建 MulticastSocket,然后调用 joinGroup(InetAddress groupAddr) 方法来加入多播组: // join a Multicast group and send the group salutations ... String msg = "Hello"; InetAddress group = InetAddress.getByName("228.5.6.7"); MulticastSocket s = new MulticastSocket(6789); s.joinGroup(group); DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 6789); s.send(hi); // get their responses! byte[] buf = new byte[1000]; DatagramPacket recv = new DatagramPacket(buf, buf.length); s.receive(recv); ... // OK, I'm done talking - leave the group... s.leaveGroup(group); 当一个人向多播组发送消息时,该主机和端口的所有订阅接收者都会收到该消息(在数据包的生存时间范围内,见下文)。 套接字不必是多播组的成员即可向其发送消息。 当套接字订阅多播组/端口时,它会接收其他主机发送到该组/端口的数据报,该组和端口的所有其他成员也是如此。 套接字通过 leaveGroup(InetAddress addr) 方法放弃组中的成员资格。 多个MulticastSocket 可以同时订阅一个组播组和端口,它们都将接收组数据报。 目前不允许小程序使用多播套接字。 构造函数摘要 构造函数 描述 MulticastSocket() 创建一个多播套接字。 MulticastSocket(int port) 创建一个多播套接字并将其绑定到特定端口。 MulticastSocket(SocketAddress bindaddr) 创建一个绑定到指定套接字地址的 MulticastSocket。...

鸿蒙OS JarURLConnection

JarURLConnection java.lang.Object |—java.net.URLConnection |—|—java.net.JarURLConnection public abstract class JarURLConnection extends URLConnection 与 Java ARchive (JAR) 文件或 JAR 文件中的条目的 URL 连接。 JAR URL 的语法是: jar:<url>!/{entry} 例如: jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class Jar URL 应该用于引用 JAR 文件或 JAR 文件中的条目。 上面的示例是一个引用 JAR 条目的 JAR URL。 如果省略条目名称,则 URL 引用整个 JAR 文件:jar:http://www.foo.com/bar/baz.jar!/ 当用户知道他们创建的 URL 是 JAR URL 并且他们需要特定于 JAR 的功能时,他们应该将通用 URLConnection 转换为 JarURLConnection。 例如: URL url = new URL("jar:file:/home/duke/duke.jar!/"); JarURLConnection jarConnection = (JarURLConnection)url.openConnection(); Manifest manifest = jarConnection.getManifest(); JarURLConnection 实例只能用于从 JAR 文件中读取。 无法使用此类获取 OutputStream 来修改或写入底层 JAR 文件。 例如: 一个 Jar 条目 jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class 一个 Jar 文件 jar:http://www.foo.com/bar/baz.jar!/ 一个 Jar 目录 jar:http://www.foo.com/bar/baz.jar!/COM/foo/ !/ 被称为分隔符。 通过 new URL(context, spec) 构造 JAR url 时,适用以下规则: 如果没有上下文 URL 并且传递给 URL 构造函数的规范不包含分隔符,则认为 URL 引用了 JarFile。 如果存在上下文 URL,则假定上下文 URL 引用 JAR 文件或 Jar 目录。 如果规范以“/”开头,则忽略 Jar 目录,并认为规范位于 Jar 文件的根目录。...

鸿蒙OS InterfaceAddress

InterfaceAddress java.lang.Object |—java.net.InterfaceAddress public class InterfaceAddress extends Object 此类表示网络接口地址。 简而言之,当地址是 IPv4 地址时,它是 IP 地址、子网掩码和广播地址。 如果是 IPv6 地址,则为 IP 地址和网络前缀长度。 方法总结 修饰符和类型 方法 描述 boolean equals(Object obj) 将此对象与指定对象进行比较。 InetAddress getAddress() 返回此地址的 InetAddress。 InetAddress getBroadcast() 返回此 InterfaceAddress 的广播地址的 InetAddress。 short getNetworkPrefixLength() 返回此地址的网络前缀长度。 int hashCode() 返回此接口地址的哈希码。 String toString() 将此接口地址转换为字符串。 从类 java.lang.Object 继承的方法 clone, finalize, getClass, notify, notifyAll, wait, wait, wait 方法详情 getAddress public InetAddress getAddress() 返回此地址的 InetAddress。 返回: 此地址的 InetAddress。 getBroadcast public InetAddress getBroadcast() 返回此 InterfaceAddress 的广播地址的 InetAddress。 只有 IPv4 网络具有广播地址,因此,对于 IPv6 网络,将返回 null。 返回: 表示广播地址的 InetAddress 或 null 如果没有广播地址。 getNetworkPrefixLength public short getNetworkPrefixLength() 返回此地址的网络前缀长度。 这也称为 IPv4 地址上下文中的子网掩码。 典型的 IPv4 值为 8 (255.0.0.0)、16 (255.255.0.0) 或 24 (255.255.255.0)。 典型的 IPv6 值为 128 (::1/128) 或 10 (fe80::203:baff:fe27:1243/10) 返回: 表示该地址的子网前缀长度的short。 equals public boolean equals(Object obj) 将此对象与指定对象进行比较。 当且仅当参数不为空并且它表示与此对象相同的接口地址时,结果才为真。 如果 InetAddress、前缀长度和广播都相同,则 InterfaceAddress 的两个实例表示相同的地址。 覆盖: 类 Object 中的等于 参数: 参数名称 参数描述...

鸿蒙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...

鸿蒙OS InetAddress

InetAddress java.lang.Object |—java.net.InetAddress public class InetAddress extends Object implements Serializable 此类表示 Internet 协议 (IP) 地址。 IP 地址是 IP 使用的 32 位或 128 位无符号数字,IP 是一种较低级别的协议,UDP 和 TCP 等协议都基于该协议构建。 IP 地址架构由 RFC 790:分配的号码、RFC 1918:专用 Internet 的地址分配、RFC 2365:管理范围的 IP 多播和 RFC 2373:IP 版本 6 寻址架构定义。 InetAddress 的一个实例由一个 IP 地址和可能的它对应的主机名组成(取决于它是用主机名构造的,还是已经完成了反向主机名解析)。 地址类型 IP 地址范围 链路本地地址设计用于在单个链路上寻址,用于自动地址配置、邻居发现或不存在路由器时。 站点本地地址旨在用于在站点内部进行寻址,而无需全局前缀。 全球地址在互联网上是唯一的。 IP 地址的文本表示 IP 地址的文本表示是地址族特定的。 有几个系统属性会影响 IPv4 和 IPv6 地址的使用方式。 主机名解析 主机名到 IP 地址的解析是通过结合使用本地机器配置信息和网络命名服务(例如域名系统 (DNS) 和网络信息服务 (NIS))来完成的。 默认情况下,正在使用的特定命名服务是本地计算机配置的服务。 对于任何主机名,都会返回其对应的 IP 地址。 反向名称解析意味着对于任何 IP 地址,都会返回与该 IP 地址关联的主机。 InetAddress 类提供将主机名解析为其 IP 地址的方法,反之亦然。 InetAddress 缓存 InetAddress 类有一个缓存来存储成功和不成功的主机名解析。 默认情况下,安装安全管理器时,为了防止 DNS 欺骗攻击,正向主机名解析的结果将被永久缓存。未安装安全管理器时,默认行为是将条目缓存一段有限的(取决于实现的)时间段。不成功的主机名解析结果将被缓存很短的时间(10 秒)以提高性能。 如果不需要默认行为,则可以将 Java 安全属性设置为不同的生存时间 (TTL) 值以进行正缓存。同样,系统管理员可以在需要时配置不同的负缓存 TTL 值。 两个 Java 安全属性控制用于正和负主机名解析缓存的 TTL 值: networkaddress.cache.ttl 指示从名称服务中成功查找名称的缓存策略。 该值指定为整数,以指示缓存成功查找的秒数。 默认设置是缓存实现特定的时间段。 -1 值表示“永远缓存”。 networkaddress.cache.negative.ttl (默认值:10) 指示来自名称服务的不成功名称查找的缓存策略。 该值指定为整数,以指示缓存不成功查找失败的秒数。 值 0 表示“从不缓存”。 -1 值表示“永远缓存”。 方法总结 修饰符和类型 方法 描述...

鸿蒙OS Inet6Address

Inet6Address java.lang.Object |—java.net.InetAddress |—|—java.net.Inet6Address public final class Inet6Address extends InetAddress 此类表示 Internet 协议版本 6 (IPv6) 地址。 由 RFC 2373 定义:IP 版本 6 寻址体系结构。 IP 地址的文本表示用作方法输入的 IPv6 地址的文本表示采用以下形式之一: 首选形式是 xxxx:x,其中 ‘x’ 是地址的八个 16 位片段的十六进制值。这是完整的表格。例如, 请注意,不必在单个字段中写入前导零。但是,每个字段中必须至少有一个数字,除非如下所述。 由于某些分配某些样式的 IPv6 地址的方法,地址通常会包含长的零位字符串。为了使写入包含零位的地址更容易,可以使用一种特殊的语法来压缩零。使用“::”表示多组 16 位零。 “::”在一个地址中只能出现一次。 “::”也可用于压缩地址中的前导和/或尾随零。例如, 在处理 IPv4 和 IPv6 节点的混合环境时,有时更方便的另一种形式是 xxxd.d.d.d,其中 ‘x’ 是六个高位 16 位的十六进制值地址片段,’d’ 是标准 IPv4 表示地址的四个低位 8 位片段的十进制值,例如, 其中 “::FFFF:d.d.d.d” 和 “::d.d.d.d” 分别是 IPv4 映射的 IPv6 地址和 IPv4 兼容的 IPv6 地址的一般形式。请注意,IPv4 部分必须采用“d.d.d.d”形式。以下表格无效: 以下表格: 是有效的,但是它是与 IPv4 兼容的 IPv6 地址的非常规表示, 而“::d”对应于通用 IPv6 地址“0:0:0:0:0:0:0:d”。 对于将文本表示形式作为输出值返回的方法,使用完整形式。 Inet6Address 将返回完整的形式,因为它在与其他文本数据结合使用时是明确的。 特殊 IPv6 地址 IPv6 范围地址的文本表示 如上所述的 IPv6 地址的文本表示可以扩展为指定 IPv6 范围的地址。 [draft-ietf-ipngwg-scoping-arch-04.txt] 中描述了对基本寻址架构的这种扩展。 因为链路本地地址和站点本地地址是非全局地址,所以不同的主机可能具有相同的目标地址,并且可以通过同一源系统上的不同接口访问。在这种情况下,始发系统被称为连接到同一范围的多个区域。为了区分哪个是预期的目标区域,可以将区域标识符(或 scope_id)附加到 IPv6 地址。 指定 scope_id 的一般格式如下: IPv6 地址%scope_id IPv6 地址是如上所述的文字 IPv6 地址。 scope_id 指的是本地系统上的一个接口,它可以通过两种方式指定。 作为数字标识符。 这必须是一个正整数,用于标识系统理解的特定接口和范围。 通常,数值可以通过系统上的管理工具来确定。 每个接口可能有多个值,每个范围一个。 如果未指定范围,则使用的默认值为零。 作为字符串。 这必须是 NetworkInterface.getName() 针对相关特定接口返回的确切字符串。 以这种方式创建 Inet6Address...

鸿蒙OS Inet4Address

Inet4Address java.lang.Object |—java.net.InetAddress |—|—java.net.Inet4Address public final class Inet4Address extends InetAddress 此类表示 Internet 协议版本 4 (IPv4) 地址。由 RFC 790:Assigned Numbers、RFC 1918:Address Allocation for Private Internet 和 RFC 2365:Administratively Scoped IP Multicast IP 地址的文本表示用作方法输入的 IPv4 地址的文本表示采用以下形式之一: 当指定四个部分时,每个部分都被解释为一个数据字节,并从左到右分配给 IPv4 地址的四个字节。 当指定一个三部分地址时,最后一部分被解释为一个 16 位的数量并放置在网络地址的最右边的两个字节中。这使得三部分地址格式便于将 B 类网络地址指定为 128.net.host。 当提供两部分地址时,最后一部分被解释为 24 位数量并放置在网络地址的最右边三个字节中。这使得两部分地址格式便于将 A 类网络地址指定为 net.host。 当只给出一部分时,该值直接存储在网络地址中,无需任何字节重排。 对于将文本表示形式作为输出值返回的方法,使用第一种形式,即点分四组字符串。 多播地址的范围 从历史上看,IP 标头中的 IPv4 TTL 字段作为多播范围字段翻了一番:TTL 为 0 表示节点本地,1 表示链路本地,到 32 表示站点本地,到 64 表示region-local,最多 128 表示大陆本地,最多 255 表示全球。但是,首选管理范围。请参阅 RFC 2365:管理范围的 IP 多播 方法总结 修饰符和类型 方法 描述 boolean equals(Object obj) 将此对象与指定对象进行比较。 byte[] getAddress() 返回此 InetAddress 对象的原始 IP 地址。 String getHostAddress() 以文本形式返回 IP 地址字符串。 int hashCode() 返回此 IP 地址的哈希码。 boolean isAnyLocalAddress() 检查 InetAddress 是否在通配符地址中的实用程序。 boolean isLinkLocalAddress() 检查 InetAddress 是否为链接本地地址的实用程序。 boolean isLoopbackAddress() 检查 InetAddress 是否为环回地址的实用程序。 boolean isMCGlobal() 检查多播地址是否具有全局范围的实用程序。 boolean isMCLinkLocal() 检查多播地址是否具有链接范围的实用程序。 boolean isMCNodeLocal() 检查多播地址是否具有节点范围的实用程序。 boolean isMCOrgLocal() 检查多播地址是否具有组织范围的实用程序。 boolean isMCSiteLocal() 检查多播地址是否具有站点范围的实用程序。 boolean isMulticastAddress() 检查 InetAddress 是否为 IP 多播地址的实用程序。 boolean isSiteLocalAddress() 检查 InetAddress 是否为站点本地地址的实用程序例程。 从类...