优惠码 第66页

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 值表示“永远缓存”。 方法总结 修饰符和类型 方法 描述...

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

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 是否为站点本地地址的实用程序例程。 从类...

IDN java.lang.Object |—java.net.IDN public final class IDN extends Object 提供在普通 Unicode 表示和 ASCII 兼容编码 (ACE) 表示之间转换国际化域名 (IDN) 的方法。 国际化域名可以使用整个 Unicode 范围内的字符,而传统域名仅限于 ASCII 字符。 ACE 是一种仅使用 ASCII 字符的 Unicode 字符串编码,可以与只理解传统域名的软件(例如域名系统)一起使用。 国际化域名在 RFC 3490 中定义。RFC 3490 定义了两种操作:ToASCII 和 ToUnicode。 这两个操作使用 Nameprep 算法,它是 Stringprep 的一个配置文件,以及 Punycode 算法来来回转换域名字符串。 上述转换过程的行为可以通过各种标志进行调整: 如果使用 ALLOW_UNASSIGNED 标志,则要转换的域名字符串可以包含在 Unicode 3.2 中未分配的代码点,这是 IDN 转换所基于的 Unicode 版本。 如果未使用该标志,则将此类未分配代码点的存在视为错误。 如果使用 USE_STD3_ASCII_RULES 标志,则对照 RFC 1122 和 RFC 1123 检查 ASCII 字符串。如果它们不符合要求,则会出错。 这些标志可以逻辑或在一起。 安全考虑对于国际化域名支持很重要。 例如,英文域名可能是同形异义词——通过替换非拉丁字母而恶意拼写错误。 Unicode 技术报告 #36 讨论了 IDN 支持的安全问题以及可能的解决方案。 应用程序有责任在使用国际域名时采取足够的安全措施。 字段摘要 修饰符和类型 字段 描述 static int ALLOW_UNASSIGNED 允许处理未分配代码点的标志 static int USE_STD3_ASCII_RULES 标记以打开对 STD-3 ASCII 规则的检查 方法总结 修饰符和类型 方法 描述 static String toASCII(String input) 将字符串从 Unicode 转换为 ASCII 兼容编码 (ACE),由 RFC 3490 的 ToASCII 操作定义。 static String toASCII(String input, int flag) 将字符串从 Unicode 转换为 ASCII 兼容编码 (ACE),由 RFC 3490 的 ToASCII 操作定义。 static String toUnicode(String input) 将字符串从 ASCII 兼容编码 (ACE) 转换为 Unicode,由 RFC 3490 的 ToUnicode 操作定义。 static String toUnicode(String input, int flag) 将字符串从 ASCII 兼容编码 (ACE) 转换为 Unicode,由 RFC 3490 的 ToUnicode 操作定义。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 字段详细信息 ALLOW_UNASSIGNED public static final int ALLOW_UNASSIGNED 允许处理未分配代码点的标志 USE_STD3_ASCII_RULES public static final int...

HttpURLConnection java.lang.Object |—java.net.URLConnection |—|—java.net.HttpURLConnection public abstract class HttpURLConnection extends URLConnection 支持 HTTP 特定功能的 URLConnection。 有关详细信息,请参阅规范。 每个 HttpURLConnection 实例用于发出单个请求,但到 HTTP 服务器的底层网络连接可能会被其他实例透明地共享。 在请求之后对 HttpURLConnection 的 InputStream 或 OutputStream 调用 close() 方法可能会释放与此实例关联的网络资源,但不会影响任何共享的持久连接。 如果持续连接当时处于空闲状态,则调用 disconnect() 方法可能会关闭底层套接字。 HTTP 协议处理程序有一些可以通过系统属性访问的设置。 这包括代理设置以及各种其他设置。 安全权限 如果安装了安全管理器,并且调用了导致尝试打开连接的方法,则调用者必须拥有:- 连接到目标 URL 的主机/端口组合的 SocketPermission 或 允许此请求的 URLPermission。 如果启用了自动重定向,并且此请求被重定向到另一个目的地,那么调用者还必须有权连接到重定向的主机/URL。 字段摘要 修饰符和类型 字段 描述 protected int chunkLength 使用分块编码流模式进行输出时的块长度。 protected int fixedContentLength 使用固定长度流模式时的固定内容长度。 protected long fixedContentLengthLong 使用固定长度流模式时的固定内容长度。 static int HTTP_ACCEPTED HTTP 状态码 202:已接受。 static int HTTP_BAD_GATEWAY HTTP 状态码 502:网关错误。 static int HTTP_BAD_METHOD HTTP 状态码 405:不允许的方法。 static int HTTP_BAD_REQUEST HTTP 状态码 400:错误请求。 static int HTTP_CLIENT_TIMEOUT HTTP 状态码 408:请求超时。 static int HTTP_CONFLICT HTTP 状态码 409:冲突。 static int HTTP_CREATED HTTP 状态码 201:已创建。 static int HTTP_ENTITY_TOO_LARGE HTTP 状态码 413:请求实体太大。 static int HTTP_FORBIDDEN HTTP 状态码 403:禁止。 static int HTTP_GATEWAY_TIMEOUT HTTP 状态码 504:网关超时。 static int HTTP_GONE HTTP 状态码 410:已消失。 static int HTTP_INTERNAL_ERROR HTTP 状态码 500:内部服务器错误。 static int HTTP_LENGTH_REQUIRED HTTP 状态码 411:长度要求。 static int HTTP_MOVED_PERM HTTP 状态码 301:永久移动。 static int HTTP_MOVED_TEMP HTTP 状态码 302:临时重定向。 static int HTTP_MULT_CHOICE HTTP 状态码 300:多项选择。 static int HTTP_NO_CONTENT HTTP 状态码 204:无内容。 static int HTTP_NOT_ACCEPTABLE HTTP 状态码 406:不可接受。 static int HTTP_NOT_AUTHORITATIVE HTTP 状态码 203:非权威信息。 static int HTTP_NOT_FOUND HTTP 状态码 404:未找到。 static int HTTP_NOT_IMPLEMENTED...

HttpCookie java.lang.Object |—java.net.HttpCookie public final class HttpCookie extends Object implements Cloneable 一个 HttpCookie 对象代表一个 HTTP cookie,它携带服务器和用户代理之间的状态信息。 Cookie 被广泛用于创建有状态会话。 有 3 个 HTTP cookie 规范: 网景 RFC 2109 草案 – http://www.ietf.org/rfc/rfc2109.txt RFC 2965 –http://www.ietf.org/rfc/rfc2965.txt HttpCookie 类可以接受所有这 3 种语法形式。 构造函数摘要 构造函数 描述 HttpCookie(String name, String value) 构造一个具有指定名称和值的 cookie。 方法总结 修饰符和类型 方法 描述 Object clone() 创建并返回此对象的副本。 static boolean domainMatches(String domain, String host) 检查主机名是否在域中的实用方法。 boolean equals(Object obj) 测试两个 HTTP cookie 的相等性。 String getComment() 返回描述此 cookie 用途的注释,如果 cookie 没有注释,则返回 null。 String getCommentURL() 返回描述此 cookie 用途的评论 URL,如果 cookie 没有评论 URL,则返回 null。 boolean getDiscard() 返回 cookie 的丢弃属性 String getDomain() 返回为此 cookie 设置的域名。 long getMaxAge() 返回 cookie 的最长期限,以秒为单位。 String getName() 返回 cookie 的名称。 String getPath() 返回浏览器将此 cookie 返回到的服务器上的路径。 String getPortlist() 返回 cookie 的端口列表属性 boolean getSecure() 如果发送此 cookie 应限制为安全协议,则返回 true;如果可以使用任何协议发送,则返回 false。 String getValue() 返回 cookie 的值。 int getVersion() 返回此 cookie 遵守的协议版本。 boolean hasExpired() 报告此 HTTP cookie 是否已过期。 int hashCode() 返回此 HTTP cookie 的哈希码。 boolean isHttpOnly() 如果此 cookie 包含 HttpOnly 属性,则返回 true。 static ListHttpCookie parse(String header) 从 set-cookie 或 set-cookie2 标头字符串构造 cookie。 void setComment(String purpose) 指定描述 cookie 用途的注释。 void setCommentURL(String purpose) 指定描述 cookie 用途的评论 URL。 void setDiscard(boolean discard) 指定用户代理是否应无条件丢弃 cookie。 void setDomain(String pattern) 指定应在其中显示此 cookie 的域。 void setHttpOnly(boolean httpOnly) 指示是否应将 cookie 视为仅 HTTP。 void setMaxAge(long expiry) 以秒为单位设置 cookie 的最长期限。 void setPath(String uri)...

DatagramSocketImpl java.lang.Object |—java.net.DatagramSocketImpl public abstract class DatagramSocketImpl extends Object implements SocketOptions 抽象数据报和多播套接字实现基类。 字段摘要 修饰符和类型 方法 描述 protected FileDescriptor fd 文件描述符对象。 protected int localPort 本地端口号。 从接口 java.net.SocketOptions 继承的字段 IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY 构造函数摘要 构造函数 描述 DatagramSocketImpl() 方法总结 修饰符和类型 方法 描述 protected abstract void bind(int lport, InetAddress laddr) 将数据报套接字绑定到本地端口和地址。 protected abstract void close() 关闭插座。 protected void connect(InetAddress address, int port) 将数据报套接字连接到远程目标。 protected abstract void create() 创建一个数据报套接字。 protected void disconnect() 断开数据报套接字与其远程目标的连接。 protected FileDescriptor getFileDescriptor() 获取数据报套接字文件描述符。 protected int getLocalPort() 获取本地端口。 protected abstract int getTimeToLive() 检索 TTL(time-to-live)选项。 protected abstract byte getTTL() 已弃用。 改用 getTimeToLive。 protected abstract void join(InetAddress inetaddr) 加入多播组。 protected abstract void joinGroup(SocketAddress mcastaddr, NetworkInterface netIf) 加入多播组。 protected abstract void leave(InetAddress inetaddr) 离开多播组。 protected abstract void leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf) 离开多播组。 protected abstract int peek(InetAddress i) 偷看包裹,看看它来自谁。 protected abstract int peekData(DatagramPacket p) 偷看包裹,看看它来自谁。 protected abstract void receive(DatagramPacket p) 接收数据报包。 protected abstract void send(DatagramPacket p) 发送一个数据报包。 protected abstract void setTimeToLive(int ttl) 设置 TTL(time-to-live)选项。 protected abstract void setTTL(byte ttl) 已弃用。 改用 setTimeToLive。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 从接口 java.net.SocketOptions 继承的方法 getOption, setOption 字段详细信息 fd protected FileDescriptor fd 文件描述符对象。 localPort protected int localPort 本地端口号。 构造函数详细信息 DatagramSocketImpl public DatagramSocketImpl() 方法详情 create protected abstract void create()...

DatagramSocket java.lang.Object |—java.net.DatagramSocket public class DatagramSocket extends Object implements Closeable 此类表示用于发送和接收数据报包的套接字。 数据报套接字是数据包传递服务的发送点或接收点。 在数据报套接字上发送或接收的每个数据包都被单独寻址和路由。 从一台机器发送到另一台机器的多个数据包可能会以不同的方式路由,并且可能以任何顺序到达。 在可能的情况下,新构建的 DatagramSocket 启用了 SocketOptions#SO_BROADCAST 套接字选项,以允许传输广播数据报。 为了接收广播数据包,应将 DatagramSocket 绑定到通配符地址。 在一些实现中,当 DatagramSocket 绑定到更具体的地址时,也可以接收广播包。 示例:DatagramSocket s = new DatagramSocket(null); s.bind(新 InetSocketAddress(8888)); 相当于:DatagramSocket s = new DatagramSocket(8888); 这两种情况都将创建一个 DatagramSocket 能够在 UDP 端口 8888 上接收广播。 构造函数摘要 修饰符 构造函数 描述 DatagramSocket() 构造一个数据报套接字并将其绑定到本地主机上的任何可用端口。 DatagramSocket(int port) 构造一个数据报套接字并将其绑定到本地主机上的指定端口。 DatagramSocket(int port, InetAddress laddr) 创建一个数据报套接字,绑定到指定的本地地址。 protected DatagramSocket(DatagramSocketImpl impl) 使用指定的 DatagramSocketImpl 创建一个未绑定的数据报套接字。 DatagramSocket(SocketAddress bindaddr) 创建一个数据报套接字,绑定到指定的本地套接字地址。 方法总结 修饰符和类型 方法 描述 void bind(SocketAddress addr) 将此 DatagramSocket 绑定到特定地址和端口。 void close() 关闭此数据报套接字。 void connect(InetAddress address, int port) 将套接字连接到此套接字的远程地址。 void connect(SocketAddress addr) 将此套接字连接到远程套接字地址(IP 地址 + 端口号)。 void disconnect() 断开插座。 boolean getBroadcast() 测试是否启用了 SO_BROADCAST。 DatagramChannel getChannel() 返回与此数据报套接字关联的唯一 DatagramChannel 对象(如果有)。 InetAddress getInetAddress() 返回此套接字连接的地址。 InetAddress getLocalAddress() 获取套接字绑定的本地地址。 int getLocalPort() 返回此套接字绑定到的本地主机上的端口号。 SocketAddress getLocalSocketAddress() 返回此套接字绑定到的端点的地址。 int getPort() 返回此套接字连接到的端口号。 int getReceiveBufferSize() 获取此 DatagramSocket 的 SO_RCVBUF 选项的值,即平台用于此 DatagramSocket 上的输入的缓冲区大小。 SocketAddress getRemoteSocketAddress() 返回此套接字连接到的端点的地址,如果未连接,则返回 null。 boolean getReuseAddress() 测试是否启用了 SO_REUSEADDR。 int getSendBufferSize() 获取此 DatagramSocket 的 SO_SNDBUF 选项的值,即平台用于在此 DatagramSocket 上输出的缓冲区大小。 int getSoTimeout() 检索 SO_TIMEOUT 的设置。 int getTrafficClass() 获取从此 DatagramSocket 发送的数据包的 IP 数据报标头中的流量类别或服务类型。 boolean isBound() 返回套接字的绑定状态。...

DatagramPacket java.lang.Object |—java.net.DatagramPacket public final class DatagramPacket extends Object 这个类代表一个数据报包。 数据报包用于实现无连接的包传递服务。 每条消息仅根据该数据包中包含的信息从一台机器路由到另一台机器。 从一台机器发送到另一台机器的多个数据包可能会以不同的方式路由,并且可能以任何顺序到达。 不保证数据包交付。 构造函数摘要 构造函数 描述 DatagramPacket(byte[] buf, int length) 构造一个 DatagramPacket 用于接收长度长度的数据包。 DatagramPacket(byte[] buf, int offset, int length) 构造一个 DatagramPacket 用于接收长度长度的数据包,指定缓冲区的偏移量。 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 构造一个数据报包,用于发送长度为长度的数据包,偏移量为 ioffset 到指定主机上的指定端口号。 DatagramPacket(byte[] buf, int offset, int length, SocketAddress address) 构造一个数据报包,用于发送长度为长度的数据包,偏移量为 ioffset 到指定主机上的指定端口号。 DatagramPacket(byte[] buf, int length, InetAddress address, int port) 构造一个数据报包,用于将长度长度的数据包发送到指定主机上的指定端口号。 DatagramPacket(byte[] buf, int length, SocketAddress address) 构造一个数据报包,用于将长度长度的数据包发送到指定主机上的指定端口号。 方法总结 修饰符和类型 方法 描述 InetAddress getAddress() 返回此数据报被发送到或接收到数据报的机器的 IP 地址。 byte[] getData() 返回数据缓冲区。 int getLength() 返回要发送的数据的长度或接收的数据的长度。 int getOffset() 返回要发送的数据的偏移量或接收的数据的偏移量。 int getPort() 返回此数据报被发送到或从其接收到的远程主机上的端口号。 SocketAddress getSocketAddress() 获取此数据包正在发送到或来自的远程主机的 SocketAddress(通常是 IP 地址 + 端口号)。 void setAddress(InetAddress iaddr) 设置要发送此数据报的机器的 IP 地址。 void setData(byte[] buf) 设置此数据包的数据缓冲区。 void setData(byte[] buf, int offset, int length) 设置此数据包的数据缓冲区。 void setLength(int length) 设置此数据包的长度。 void setPort(int iport) 设置此数据报要发送到的远程主机上的端口号。 void setSocketAddress(SocketAddress address) 设置这个数据报被发送到的远程主机的 SocketAddress(通常是 IP 地址 + 端口号)。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 DatagramPacket public DatagramPacket(byte[] buf, int offset, int length) 构造一个 DatagramPacket 用于接收长度长度的数据包,指定缓冲区的偏移量。 长度参数必须小于或等于 buf.length。 参数: 参数名称 参数描述 buf 用于保存传入数据报的缓冲区。 offset 缓冲区的偏移量 length 要读取的字节数。 DatagramPacket public DatagramPacket(byte[] buf, int length) 构造一个 DatagramPacket 用于接收长度长度的数据包。 长度参数必须小于或等于 buf.length。 参数: 参数名称 参数描述 buf 用于保存传入数据报的缓冲区。 length 要读取的字节数。 DatagramPacket public DatagramPacket(byte[] buf, int offset,...

CookieManager java.lang.Object |—java.net.CookieHandler |—|—java.net.CookieManager public class CookieManager extends CookieHandler CookieManager 提供了 CookieHandler 的具体实现,它将 cookie 的存储与接受和拒绝 cookie 的策略分开。 CookieManager 使用管理存储的 CookieStore 和 CookiePolicy 对象进行初始化,该对象对 cookie 接受/拒绝做出策略决策。 java.net 包中的 HTTP cookie 管理如下所示: use CookieHandler <------- HttpURLConnection ^ | impl | use CookieManager -------> CookiePolicy | use |--------> HttpCookie | ^ | | use | use | |--------> CookieStore ^ | impl | Internal in-memory implementation CookieHandler 是 cookie 管理的核心。 用户可以调用 CookieHandler.setDefault 来设置要使用的具体 CookieHanlder 实现。 CookiePolicy.shouldAccept 将由 CookieManager.put 调用,以查看是否应接受一个 cookie 并将其放入 cookie 存储中。 用户可以使用三个预定义的 CookiePolicy 中的任何一个,即 ACCEPT_ALL、ACCEPT_NONE 和 ACCEPT_ORIGINAL_SERVER,或者用户可以定义自己的 CookiePolicy 实现并告诉 CookieManager 使用它。 CookieStore 是存储任何接受的 HTTP cookie 的地方。如果在创建时未指定,CookieManager 实例将使用内部内存实现。 或者用户可以实现一个并告诉 CookieManager 使用它。 目前,CookieManager 仅使用 CookieStore.add(URI, HttpCookie) 和 CookieStore.get(URI)。 其他是为了完整性,可能需要更复杂的 CookieStore 实现,例如 网景CookieSotre。 用户可以通过多种方式连接自己的 HTTP cookie 管理行为,例如 使用 CookieHandler.setDefault 设置一个全新的 CookieHandler 实现 让 CookieManager...