SocketPermission java.lang.Object |—java.security.Permission |—|—java.net.SocketPermission public final class SocketPermission extends Permission implements Serializable 此类表示通过套接字访问网络。一个 SocketPermission 由一个主机规范和一组指定连接到该主机的方式的“操作”组成。主机被指定为 host = (hostname | IPv4address | iPv6reference) [:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber] 主机表示为 DNS 名称、数字 IP 地址或“localhost”(对于本地计算机)。 通配符“”可以包含在 DNS 名称主机规范中一次。 如果包含它,它必须在最左边的位置,如“.sun.com”。 IPv6reference 的格式应遵循 RFC 2732 中指定的格式:URL 中的 Literal IPv6 Addresses 格式: ipv6reference = "[" IPv6address "]" 例如,您可以构造一个 SocketPermission 实例,如下所示: String hostAddress = inetaddress.getHostAddress(); if (inetaddress instanceof Inet6Address) { sp = new SocketPermission("[" + hostAddress + "]:" + port, action); } else { sp = new SocketPermission(hostAddress + ":" + port, action); } 或者 String host = url.getHost(); sp = new SocketPermission(host + ":" + port, action); IPv6 文字地址的完整未压缩形式也是有效的。 端口或端口范围是可选的。 “N-”形式的端口规范,其中N是端口号,表示编号为N及以上的所有端口,而形式为“-N”的规范表示编号为N及以下的所有端口。特殊端口值 0 指的是整个临时端口范围。这是系统可以用来分配动态端口的固定端口范围。实际范围可能取决于系统。 连接到主机的可能方式是 accept connect listen resolve “listen”操作仅在与“localhost”一起使用时才有意义,并且意味着能够绑定到指定端口。 当存在任何其他动作时,暗示“resolve”动作。 操作“resolve”是指主机/IP 名称服务查找。 在处理之前将操作字符串转换为小写。...
SocketImpl java.lang.Object |—java.net.SocketImpl public abstract class SocketImpl extends Object implements SocketOptions 抽象类 SocketImpl 是所有实际实现套接字的类的公共超类。 它用于创建客户端和服务器套接字。 “普通”套接字完全按照描述实现这些方法,而不试图通过防火墙或代理。 字段摘要 修饰符和类型 字段 描述 protected InetAddress address 此套接字的远程端的 IP 地址。 protected FileDescriptor fd 此套接字的文件描述符对象。 protected int localport 此套接字连接到的本地端口号。 protected int port 此套接字连接到的远程主机上的端口号。 从接口 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 构造函数摘要 构造函数 描述 SocketImpl() 方法总结 修饰符和类型 方法 描述 protected abstract void accept(SocketImpl s) 接受连接。 protected abstract int available() 返回可以不阻塞地从此套接字读取的字节数。 protected abstract void bind(InetAddress host, int port) 将此套接字绑定到指定的本地 IP 地址和端口号。 protected abstract void close() 关闭此套接字。 protected abstract void connect(String host, int port) 将此套接字连接到指定主机上的指定端口。 protected abstract void connect(InetAddress address, int port) 将此套接字连接到指定主机上的指定端口号。 protected abstract void connect(SocketAddress address, int timeout) 将此套接字连接到指定主机上的指定端口号。 protected abstract void create(boolean stream) 创建流或数据报套接字。 protected FileDescriptor getFileDescriptor() 返回此套接字的 fd 字段的值。 protected InetAddress getInetAddress() 返回此套接字的地址字段的值。 protected abstract InputStream getInputStream() 返回此套接字的输入流。 protected int getLocalPort() 返回此套接字的 localport 字段的值。 protected abstract OutputStream getOutputStream() 返回此套接字的输出流。 protected int getPort() 返回此套接字的端口字段的值。 protected abstract void listen(int backlog) 将传入连接指示(连接请求)的最大队列长度设置为 count 参数。 protected abstract void sendUrgentData(int data) 在套接字上发送一个字节的紧急数据。 protected void setPerformancePreferences(int connectionTime, int latency, int bandwidth) 设置此套接字的性能首选项。 protected void shutdownInput() 将此套接字的输入流放在“流的末尾”。 protected void shutdownOutput() 禁用此套接字的输出流。 protected boolean supportsUrgentData() 返回此 SocketImpl 是否支持发送紧急数据。 String toString() 将此套接字的地址和端口作为字符串返回。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 从接口 java.net.SocketOptions 继承的方法 getOption, setOption 字段详细信息 address protected InetAddress address...
SocketAddress java.lang.Object |—java.net.SocketAddress public abstract class SocketAddress extends Object implements Serializable 此类表示没有协议附件的套接字地址。 作为一个抽象类,它意味着是一个特定的、依赖于协议的实现的子类。 它提供了一个不可变的对象,供套接字用于绑定、连接或作为返回值。 构造函数摘要 构造函数 描述 SocketAddress() 方法总结 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 SocketAddress public SocketAddress()
Socket java.lang.Object |—java.net.Socket public class Socket extends Object implements Closeable 此类实现客户端套接字(也称为“套接字”)。 套接字是两台机器之间通信的端点。 套接字的实际工作由 SocketImpl 类的实例执行。 应用程序通过更改创建套接字实现的套接字工厂,可以将自己配置为创建适合本地防火墙的套接字。 构造函数摘要 修饰符 构造函数 描述 Socket() 创建一个未连接的套接字,系统默认类型为 SocketImpl。 Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。 Socket(String host, int port, boolean stream) 已弃用。 使用 DatagramSocket 代替 UDP 传输。 Socket(String host, int port, InetAddress localAddr, int localPort) 创建一个套接字并将其连接到指定远程端口上的指定远程主机。 Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。 Socket(InetAddress host, int port, boolean stream) 已弃用。 使用 DatagramSocket 代替 UDP 传输。 Socket(InetAddress address, int port, InetAddress localAddr, int localPort) 创建一个套接字并将其连接到指定远程端口上的指定远程地址。 Socket(Proxy proxy) 创建一个未连接的套接字,指定代理的类型(如果有),无论任何其他设置如何,都应使用该类型。 protected Socket(SocketImpl impl) 使用用户指定的 SocketImpl 创建一个未连接的 Socket。 方法总结 修饰符和类型 方法 描述 void bind(SocketAddress bindpoint) 将套接字绑定到本地地址。 void close() 关闭此套接字。 void connect(SocketAddress endpoint) 将此套接字连接到服务器。 void connect(SocketAddress endpoint, int timeout) 将此套接字连接到具有指定超时值的服务器。 SocketChannel getChannel() 返回与此套接字关联的唯一 SocketChannel 对象(如果有)。 InetAddress getInetAddress() 返回套接字连接的地址。 InputStream getInputStream() 返回此套接字的输入流。 boolean getKeepAlive() 测试是否启用了 SocketOptions#SO_KEEPALIVE。 InetAddress getLocalAddress() 获取套接字绑定的本地地址。 int getLocalPort() 返回此套接字绑定到的本地端口号。 SocketAddress getLocalSocketAddress() 返回此套接字绑定到的端点的地址。 boolean getOOBInline() 测试是否启用了 SocketOptions#SO_OOBINLINE。 OutputStream getOutputStream() 返回此套接字的输出流。 int getPort() 返回此套接字连接到的远程端口号。 int getReceiveBufferSize() 获取此 Socket 的 SocketOptions#SO_RCVBUF 选项的值,即平台用于在此 Socket 上输入的缓冲区大小。 SocketAddress getRemoteSocketAddress() 返回此套接字连接到的端点的地址,如果未连接,则返回 null。 boolean getReuseAddress() 测试 SocketOptions#SO_REUSEADDR 是否启用。 int getSendBufferSize() 获取此 Socket 的 SocketOptions#SO_SNDBUF 选项的值,即平台用于在此 Socket 上输出的缓冲区大小。 int getSoLinger() 返回 SocketOptions#SO_LINGER 的设置。 int getSoTimeout() 返回 SocketOptions#SO_TIMEOUT 的设置。 boolean getTcpNoDelay() 测试是否启用了 SocketOptions#TCP_NODELAY。 int getTrafficClass() 获取从此 Socket 发送的数据包的 IP 标头中的流量类别或服务类型 boolean isBound() 返回套接字的绑定状态。 boolean isClosed() 返回套接字的关闭状态。 boolean isConnected() 返回套接字的连接状态。 boolean isInputShutdown()...
ServerSocket java.lang.Object |—java.net.ServerSocket public class ServerSocket extends Object implements Closeable 此类实现服务器套接字。 服务器套接字等待通过网络进入的请求。 它根据该请求执行一些操作,然后可能将结果返回给请求者。 服务器套接字的实际工作由 SocketImpl 类的实例执行。 应用程序可以更改创建套接字实现的套接字工厂,以将其自身配置为创建适合本地防火墙的套接字。 构造函数摘要 构造函数 描述 ServerSocket() 创建一个未绑定的服务器套接字。 ServerSocket(int port) 创建一个绑定到指定端口的服务器套接字。 ServerSocket(int port, int backlog) 创建一个服务器套接字并将其绑定到指定的本地端口号,并具有指定的 backlog。 ServerSocket(int port, int backlog, InetAddress bindAddr) 创建具有指定端口、侦听积压和要绑定的本地 IP 地址的服务器。 方法总结 修饰符和类型 方法 描述 Socket accept() 侦听要与此套接字建立的连接并接受它。 void bind(SocketAddress endpoint) 将 ServerSocket 绑定到特定地址(IP 地址和端口号)。 void bind(SocketAddress endpoint, int backlog) 将 ServerSocket 绑定到特定地址(IP 地址和端口号)。 void close() 关闭此套接字。 ServerSocketChannel getChannel() 返回与此套接字关联的唯一 ServerSocketChannel 对象(如果有)。 InetAddress getInetAddress() 返回此服务器套接字的本地地址。 int getLocalPort() 返回此套接字正在侦听的端口号。 SocketAddress getLocalSocketAddress() 返回此套接字绑定到的端点的地址。 int getReceiveBufferSize() 获取此 ServerSocket 的 SocketOptions#SO_RCVBUF 选项的值,即用于从该 ServerSocket 接受的套接字的建议缓冲区大小。 boolean getReuseAddress() 测试 SocketOptions#SO_REUSEADDR 是否启用。 int getSoTimeout() 检索 SocketOptions#SO_TIMEOUT 的设置。 protected void implAccept(Socket s) ServerSocket 的子类使用此方法覆盖 accept() 以返回它们自己的套接字子类。 boolean isBound() 返回 ServerSocket 的绑定状态。 boolean isClosed() 返回 ServerSocket 的关闭状态。 void setPerformancePreferences(int connectionTime, int latency, int bandwidth) 设置此 ServerSocket 的性能首选项。 void setReceiveBufferSize(int size) 为从此 ServerSocket 接受的套接字设置 SocketOptions#SO_RCVBUF 选项的默认建议值。 void setReuseAddress(boolean on) 启用/禁用 SocketOptions#SO_REUSEADDR 套接字选项。 static void setSocketFactory(SocketImplFactory fac) 为应用程序设置服务器套接字实现工厂。 void setSoTimeout(int timeout) 使用指定的超时启用/禁用 SocketOptions#SO_TIMEOUT,以毫秒为单位。 String toString() 以 String 形式返回此套接字的实现地址和实现端口。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 构造函数详细信息 ServerSocket public ServerSocket() throws IOException 创建一个未绑定的服务器套接字。 Throws: Throw名称 Throw描述 IOException 打开套接字时出现 IO 错误。 ServerSocket public ServerSocket(int port) throws IOException 创建一个绑定到指定端口的服务器套接字。 端口号 0 表示端口号是自动分配的,通常来自临时端口范围。 然后可以通过调用 getLocalPort...
SecureCacheResponse java.lang.Object |—java.net.CacheResponse |—|—java.net.SecureCacheResponse public abstract class SecureCacheResponse extends CacheResponse 表示最初通过安全方式(例如 TLS)检索到的缓存响应。 构造函数摘要 构造函数 描述 SecureCacheResponse() 方法总结 修饰符和类型 方法 描述 abstract String getCipherSuite() 返回检索网络资源的原始连接上使用的密码套件。 abstract ListCertificate getLocalCertificateChain() 返回在检索网络资源的原始连接握手期间发送到服务器的证书链。 abstract Principal getLocalPrincipal() 返回在检索网络资源的原始连接中握手期间发送到服务器的主体。 abstract Principal getPeerPrincipal() 返回在检索网络资源的原始连接期间作为定义会话的一部分而建立的服务器主体。 abstract ListCertificate getServerCertificateChain() 从缓存中返回服务器的证书链,该证书链是作为在检索网络资源的原始连接中定义会话的一部分而建立的。 从类 java.net.CacheResponse 继承的方法 getBody, getHeaders 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 SecureCacheResponse public SecureCacheResponse() 方法详情 getCipherSuite public abstract String getCipherSuite() 返回检索网络资源的原始连接上使用的密码套件。 返回: 表示密码套件的字符串 getLocalCertificateChain public abstract ListCertificate getLocalCertificateChain() 返回在检索网络资源的原始连接握手期间发送到服务器的证书链。 注意:此方法仅在使用基于证书的密码套件时有用。 返回: 表示发送到服务器的证书链的不可变证书列表。 如果没有发送证书链,则返回 null。 getServerCertificateChain public abstract ListCertificate getServerCertificateChain() throws SSLPeerUnverifiedException 返回服务器的证书链,该链是作为在从缓存中检索网络资源的原始连接中定义会话的一部分而建立的。 注意:此方法只能在使用基于证书的密码套件时使用; 将它与非基于证书的密码套件(例如 Kerberos)一起使用将引发 SSLPeerUnverifiedException。 返回: 代表服务器证书链的不可变证书列表。 Throws: Throw名称 Throw描述 SSLPeerUnverifiedException 如果peer未通过验证。 getPeerPrincipal public abstract Principal getPeerPrincipal() throws SSLPeerUnverifiedException 返回在检索网络资源的原始连接期间作为定义会话的一部分而建立的服务器主体。 返回: 服务器的主体。 对于基于 X509 的密码套件返回最终实体证书的 X500Principal,对于 Kerberos 密码套件返回 KerberosPrincipal。 Throws: Throw名称 Throw描述 SSLPeerUnverifiedException 如果peer未经过验证。 getLocalPrincipal public abstract Principal getLocalPrincipal() 返回在检索网络资源的原始连接中握手期间发送到服务器的主体。 返回: 主体发送到服务器。 对于基于 X509 的密码套件返回最终实体证书的 X500Principal,对于...
ResponseCache java.lang.Object |—java.net.ResponseCache public abstract class ResponseCache extends Object 表示 URLConnection 缓存的实现。 可以通过执行 ResponseCache.setDefault(ResponseCache) 向系统注册此类的实例,系统将调用此对象以: 将已从外部源检索到的资源数据存储到缓存中 尝试获取可能已存储在缓存中的请求资源 ResponseCache 实现决定哪些资源应该被缓存,以及它们应该被缓存多长时间。 如果无法从缓存中检索请求资源,则协议处理程序将从其原始位置获取资源。 URLConnection#useCaches 的设置控制是否允许协议使用缓存的响应。 构造函数摘要 构造函数 描述 ResponseCache() 方法总结 修饰符和类型 方法 描述 abstract CacheResponse get(URI uri, String rqstMethod, Map<String,List<String>> rqstHeaders) 根据请求 uri、请求方法和请求标头检索缓存的响应。 static ResponseCache getDefault() 获取系统范围的响应缓存。 abstract CacheRequest put(URI uri, URLConnection conn) 协议处理程序在获取资源后调用此方法,并且 ResponseCache 必须决定是否将资源存储在其缓存中。 static void setDefault(ResponseCache responseCache) 设置(或取消设置)系统范围的缓存。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 ResponseCache public ResponseCache() 方法详情 getDefault public static ResponseCache getDefault() 获取系统范围的响应缓存。 返回: 系统范围的 ResponseCache Throws: Throw名称 Throw描述 SecurityException 如果已安装安全管理器并且它拒绝 NetPermission(“getResponseCache”) setDefault public static void setDefault(ResponseCache responseCache) 设置(或取消设置)系统范围的缓存。 注意:非标准协议处理程序可能会忽略此设置。 参数: 参数名称 参数描述 responseCache 响应缓存,或 null 取消设置缓存。 Throws: Throw名称 Throw描述 SecurityException 如果已安装安全管理器并且它拒绝 NetPermission(“setResponseCache”) get public abstract CacheResponse get(URI uri, String rqstMethod, Map<String,List<String>> rqstHeaders) throws IOException 根据请求 uri、请求方法和请求标头检索缓存的响应。 通常,此方法由协议处理程序在发出请求以获取网络资源之前调用。 如果返回缓存的响应,则使用该资源。 参数: 参数名称 参数描述 uri 用于引用请求的网络资源的 URI rqstMethod 表示请求方法的字符串 rqstHeaders – 从请求标头字段名称到表示当前请求标头的字段值列表的映射 返回: 如果缓存中可用,则为 CacheResponse 实例,否则为 null Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误 IllegalArgumentException 如果任何一个参数为空...
ProxySelector java.lang.Object |—java.net.ProxySelector public abstract class ProxySelector extends Object 选择连接到 URL 引用的网络资源时要使用的代理服务器(如果有)。 代理选择器是此类的具体子类,并通过调用 setDefault 方法进行注册。 当前注册的代理选择器可以通过调用 getDefault 方法来检索。 例如,当代理选择器注册时,URLConnection 类的子类应该为每个 URL 请求调用 select 方法,以便代理选择器可以决定是否应该使用直接连接或代理连接。 select 方法使用首选连接方法返回集合上的迭代器。 如果无法与代理(PROXY 或 SOCKS)服务器建立连接,则调用者应调用代理选择器的 connectFailed 方法来通知代理选择器代理服务器不可用。 默认代理选择器确实强制执行一组与代理设置相关的系统属性。 构造函数摘要 构造函数 描述 ProxySelector() 方法总结 修饰符和类型 方法 描述 abstract void connectFailed(URI uri, SocketAddress sa, IOException ioe) 调用以指示无法建立到proxy/socks服务器的连接。 static ProxySelector getDefault() 获取系统范围的代理选择器。 abstract ListProxy select(URI uri) 根据协议选择所有适用的代理来访问资源,并选择目标地址来访问资源。 static void setDefault(ProxySelector ps) 设置(或取消设置)系统范围的代理选择器。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 ProxySelector public ProxySelector() 方法详情 getDefault public static ProxySelector getDefault() 获取系统范围的代理选择器。 返回: 系统范围的 ProxySelector Throws: Throw名称 Throw描述 SecurityException 如果已安装安全管理器并且它拒绝 NetPermission(“getProxySelector”) setDefault public static void setDefault(ProxySelector ps) 设置(或取消设置)系统范围的代理选择器。 注意:非标准协议处理程序可能会忽略此设置。 参数: 参数名称 参数描述 ps HTTP 代理选择器,或 null 以取消设置代理选择器。 Throws: Throw名称 Throw描述 SecurityException 如果已安装安全管理器并且它拒绝 NetPermission(“setProxySelector”) select public abstract ListProxy select(URI uri) 根据协议选择所有适用的代理来访问资源,并选择目标地址来访问资源。 URI 的格式定义如下: http 连接的 http URI https 连接的 https URI socket://host:port 用于 tcp 客户端套接字连接 参数: 参数名称 参数描述 uri 连接所需的 URI 返回:...
Proxy java.lang.Object |—java.net.Proxy public class Proxy extends Object 此类表示代理设置,通常是类型(http、socks)和套接字地址。 代理是一个不可变的对象。 嵌套类摘要 修饰符和类型 类 描述 static class Proxy.Type Represents the proxy type. 字段摘要 修饰符和类型 字段 描述 static Proxy NO_PROXY 代表 DIRECT 连接的代理设置,基本上告诉协议处理程序不要使用任何代理。 构造函数摘要 构造函数 描述 Proxy(Proxy.Type type, SocketAddress sa) 创建一个表示代理连接的条目。 方法总结 修饰符和类型 方法 描述 SocketAddress address() 返回代理的套接字地址,如果是直接连接,则返回 null。 boolean equals(Object obj) 将此对象与指定对象进行比较。 int hashCode() 返回此代理的哈希码。 String toString() 构造此 Proxy 的字符串表示形式。 Proxy.Type type() 返回代理类型。 从类 java.lang.Object 继承的方法 clone, finalize, getClass, notify, notifyAll, wait, wait, wait 字段详细信息 NO_PROXY public static final Proxy NO_PROXY 代表 DIRECT 连接的代理设置,基本上告诉协议处理程序不要使用任何代理。 例如,用于创建绕过任何其他全局代理设置(如 SOCKS)的套接字: Socket s = new Socket(Proxy.NO_PROXY); 构造函数详细信息 Proxy public Proxy(Proxy.Type type, SocketAddress sa) 创建一个表示代理连接的条目。 某些组合是非法的。 例如,对于 Http 和 Socks 类型,必须提供 SocketAddress。 使用 Proxy.NO_PROXY 常量来表示直接连接。 参数: 参数名称 参数描述 type 代理的类型 sa 该代理的 SocketAddress Throws: Throw名称 Throw描述 IllegalArgumentException 当类型和地址不兼容时 方法详情 type public Proxy.Type type() 返回代理类型。 返回: 表示代理类型的 Type address public SocketAddress address() 返回代理的套接字地址,如果是直接连接,则返回 null。 返回: 代表代理的套接字端点的 SocketAddress toString public String...
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() 返回用户密码。 请注意,此方法返回对密码的引用。 调用者有责任在不再需要密码信息后将其清零。 返回: 密码