uTools-Manuals/docs/java/javax/net/ssl/SSLSocketFactory.html

327 lines
17 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact1, compact2, compact3
</div>
<div class="subTitle">
javax.net.ssl
</div>
<h2 class="title" title="Class SSLSocketFactory">Class SSLSocketFactory</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../javax/net/SocketFactory.html" title="class in javax.net">javax.net.SocketFactory</a></li>
<li>
<ul class="inheritance">
<li>javax.net.ssl.SSLSocketFactory</li>
</ul> </li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public abstract class <span class="typeNameLabel">SSLSocketFactory</span>
extends <a href="../../../javax/net/SocketFactory.html" title="class in javax.net">SocketFactory</a></pre>
<div class="block">
<code>SSLSocketFactory</code>创建
<code>SSLSocket</code> s。
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.4
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/net/ssl/SSLSocket.html" title="javax.net.ssl中的类"><code>SSLSocket</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../javax/net/ssl/SSLSocketFactory.html#SSLSocketFactory--">SSLSocketFactory</a></span>()</code>
<div class="block">
构造方法仅由子类使用。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t1"><span><a href="javascript:show(1);">静态方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="../../../java/net/Socket.html" title="class in java.net">Socket</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/net/ssl/SSLSocketFactory.html#createSocket-java.net.Socket-java.io.InputStream-boolean-">createSocket</a></span>(<a href="../../../java/net/Socket.html" title="class in java.net">Socket</a> s, <a href="../../../java/io/InputStream.html" title="class in java.io">InputStream</a> consumed, boolean autoClose)</code>
<div class="block">
<span>创建服务器模式<a href="../../../java/net/Socket.html" title="java.net中的类"><code>Socket</code></a>分层在现有连接的套接字上,并且能够读取已经从<a href="../../../java/net/Socket.html" title="java.net中的类"><code>Socket</code></a>的底层<a href="../../../java/io/InputStream.html" title="java.io中的类"><code>InputStream</code></a>消耗/删除的数据。</span>
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>abstract <a href="../../../java/net/Socket.html" title="class in java.net">Socket</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/net/ssl/SSLSocketFactory.html#createSocket-java.net.Socket-java.lang.String-int-boolean-">createSocket</a></span>(<a href="../../../java/net/Socket.html" title="class in java.net">Socket</a> s, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> host, int port, boolean autoClose)</code>
<div class="block">
返回在给定端口上分层连接到指定主机的现有套接字上的套接字。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>static <a href="../../../javax/net/SocketFactory.html" title="class in javax.net">SocketFactory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/net/ssl/SSLSocketFactory.html#getDefault--">getDefault</a></span>()</code>
<div class="block">
返回默认的SSL套接字工厂。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>abstract <a href="../../../java/lang/String.html" title="class in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/net/ssl/SSLSocketFactory.html#getDefaultCipherSuites--">getDefaultCipherSuites</a></span>()</code>
<div class="block">
返回默认启用的密码套件列表。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>abstract <a href="../../../java/lang/String.html" title="class in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/net/ssl/SSLSocketFactory.html#getSupportedCipherSuites--">getSupportedCipherSuites</a></span>()</code>
<div class="block">
返回可以在SSL连接上使用的密码套件的名称。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.net.SocketFactory">
<!-- --> </a> <h3>Methods inherited from class javax.net.<a href="../../../javax/net/SocketFactory.html" title="class in javax.net">SocketFactory</a></h3> <code><a href="../../../javax/net/SocketFactory.html#createSocket--">createSocket</a>, <a href="../../../javax/net/SocketFactory.html#createSocket-java.net.InetAddress-int-">createSocket</a>, <a href="../../../javax/net/SocketFactory.html#createSocket-java.net.InetAddress-int-java.net.InetAddress-int-">createSocket</a>, <a href="../../../javax/net/SocketFactory.html#createSocket-java.lang.String-int-">createSocket</a>, <a href="../../../javax/net/SocketFactory.html#createSocket-java.lang.String-int-java.net.InetAddress-int-">createSocket</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../../java/lang/Object.html#clone--">clone</a>, <a href="../../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../../java/lang/Object.html#notify--">notify</a>, <a href="../../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../../java/lang/Object.html#toString--">toString</a>, <a href="../../../java/lang/Object.html#wait--">wait</a>, <a href="../../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="SSLSocketFactory--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>SSLSocketFactory</h4> <pre>public SSLSocketFactory()</pre>
<div class="block">
构造方法仅由子类使用。
</div> </li>
</ul> </li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getDefault--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getDefault</h4> <pre>public static <a href="../../../javax/net/SocketFactory.html" title="class in javax.net">SocketFactory</a> getDefault()</pre>
<div class="block">
<span>返回默认的SSL套接字工厂。</span>
<p> <span>第一次调用此方法时会检查安全属性“ssl.SocketFactory.provider”。</span> <span>如果它是非空的,则加载并实例化该名称的类。</span> <span>如果这是成功的并且该对象是SSLSocketFactory的实例则它将成为默认的SSL套接字工厂。</span> </p>
<p> <span>否则,此方法返回<code>SSLContext.getDefault().getSocketFactory()</code></span> <span>如果该通话失败,则返回不工作的工厂。</span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
默认为
<code>SocketFactory</code>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/net/ssl/SSLContext.html#getDefault--"><code>SSLContext.getDefault()</code></a>
</dd>
</dl> </li>
</ul> <a name="getDefaultCipherSuites--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getDefaultCipherSuites</h4> <pre>public abstract <a href="../../../java/lang/String.html" title="class in java.lang">String</a>[] getDefaultCipherSuites()</pre>
<div class="block">
<span>返回默认启用的密码套件列表。</span>
<span>除非启用不同的列表否则SSL连接上的握手将使用这些密码套件之一。</span>
<span>这些默认值的最低服务质量需要机密性保护和服务器身份验证(即无匿名密码套件)。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
默认启用的密码套件阵列
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/net/ssl/SSLSocketFactory.html#getSupportedCipherSuites--"><code>getSupportedCipherSuites()</code></a>
</dd>
</dl> </li>
</ul> <a name="getSupportedCipherSuites--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getSupportedCipherSuites</h4> <pre>public abstract <a href="../../../java/lang/String.html" title="class in java.lang">String</a>[] getSupportedCipherSuites()</pre>
<div class="block">
<span>返回可以在SSL连接上使用的密码套件的名称。</span>
<span>通常,默认情况下实际上只能启用这些子集,因为此列表可能包括不符合这些默认值的服务质量要求的密码套件。</span>
<span>这样的密码套件在专门的应用中是有用的。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一组加密套件名称
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/net/ssl/SSLSocketFactory.html#getDefaultCipherSuites--"><code>getDefaultCipherSuites()</code></a>
</dd>
</dl> </li>
</ul> <a name="createSocket-java.net.Socket-java.lang.String-int-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>createSocket</h4> <pre>public abstract <a href="../../../java/net/Socket.html" title="class in java.net">Socket</a> createSocket(<a href="../../../java/net/Socket.html" title="class in java.net">Socket</a> s,
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> host,
int port,
boolean autoClose)
throws <a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>返回在给定端口上分层连接到指定主机的现有套接字上的套接字。</span>
<span>当通过代理隧道传递SSL或协商在现有套接字上使用SSL时可以使用此构造函数。</span>
<span>主机和端口引用逻辑对等目的地。</span>
<span>此插座使用为此工厂建立的插座选项进行配置。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>s</code> - 现有套接字
</dd>
<dd>
<code>host</code> - 服务器主机
</dd>
<dd>
<code>port</code> - 服务器端口
</dd>
<dd>
<code>autoClose</code> - 当此套接字关闭时关闭底层套接字
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个连接到指定主机和端口的套接字
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 创建套接字时是否发生I / O错误
</dd>
<dd>
<code><a href="../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果参数s为空
</dd>
</dl> </li>
</ul> <a name="createSocket-java.net.Socket-java.io.InputStream-boolean-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>createSocket</h4> <pre>public <a href="../../../java/net/Socket.html" title="class in java.net">Socket</a> createSocket(<a href="../../../java/net/Socket.html" title="class in java.net">Socket</a> s,
<a href="../../../java/io/InputStream.html" title="class in java.io">InputStream</a> consumed,
boolean autoClose)
throws <a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>创建服务器模式<a href="../../../java/net/Socket.html" title="java.net中的类"><code>Socket</code></a>分层在现有连接的套接字上,并且能够读取已经从<a href="../../../java/net/Socket.html" title="java.net中的类"><code>Socket</code></a>的底层<a href="../../../java/io/InputStream.html" title="java.io中的类"><code>InputStream</code></a>消耗/删除的数据。</span>
<p> <span>这种方法可以由需要观察入站数据的服务器应用程序使用但仍然会创建有效的SSL / TLS连接例如检查服务器名称指示SNI扩展见第<a href="http://www.ietf.org/rfc/rfc6066.txt">TLS Extensions (RFC6066)段</a> )。</span> <span>已经从底层<a href="../../../java/io/InputStream.html" title="java.io中的类"><code>InputStream</code></a>删除的数据应该在调用此方法之前加载到<code>consumed</code>流中,也许使用<a href="../../../java/io/ByteArrayInputStream.html" title="java.io中的类"><code>ByteArrayInputStream</code></a></span> <span>当此<a href="../../../java/net/Socket.html" title="java.net中的类"><code>Socket</code></a>开始握手,将读取的所有数据在<code>consumed</code> ,直到它到达<code>EOF</code> ,则所有的进一步的数据从底层读<a href="../../../java/io/InputStream.html" title="java.io中的类"><code>InputStream</code></a>如常。</span> </p>
<p> <span>返回的套接字使用为此工厂建立的套接字选项进行配置,并在握手时设置为使用服务器模式(请参阅<a href="../../../javax/net/ssl/SSLSocket.html#setUseClientMode-boolean-"><code>SSLSocket.setUseClientMode(boolean)</code></a> )。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>s</code> - 现有套接字
</dd>
<dd>
<span><code>consumed</code> - 已经从现有的<a href="../../../java/net/Socket.html" title="java.net中的类"><code>Socket</code></a> <a href="../../../java/io/InputStream.html" title="java.io中的类"><code>InputStream</code></a>删除的已消耗的入站网络数据。</span>
<span>如果没有数据被删除,此参数可能为<code>null</code></span>
</dd>
<dd>
<code>autoClose</code> - 关闭当该套接字关闭时的底层套接字。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span><a href="../../../java/net/Socket.html" title="java.net中的类"><code>Socket</code></a>符合该工厂建立的套接字选项</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果在创建套接字时发生I / O错误
</dd>
<dd>
<code><a href="../../../java/lang/UnsupportedOperationException.html" title="class in java.lang">UnsupportedOperationException</a></code> - 如果底层提供程序不实现该操作
</dd>
<dd>
<code><a href="../../../java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</a></code> - 如果
<code>s</code>
<code>null</code>
</dd>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.8
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>