Creates a server mode Socket layered over an
existing connected socket, and is able to read data which has
already been consumed/removed from the Socket's
underlying InputStream.
This method can be used by a server application that needs to
observe the inbound data but still create valid SSL/TLS
connections: for example, inspection of Server Name Indication
(SNI) extensions (See section 3 of TLS Extensions
(RFC6066)). Data that has been already removed from the
underlying InputStream should be loaded into the
consumed stream before this method is called, perhaps
using a java.io.ByteArrayInputStream. When this
Socket begins handshaking, it will read all of the data in
consumed until it reaches EOF, then all further
data is read from the underlying InputStream as
usual.
The returned socket is configured using the socket options
established for this factory, and is set to use server mode when
handshaking (see SSLSocket.setUseClientMode(boolean)).
s
| the existing socket | |
consumed
| the consumed inbound network data that has already been
removed from the existing Socket
InputStream. This parameter may be
null if no data has been removed. | |
autoClose | close the underlying socket when this socket is closed. |
Socket compliant with the socket options
established for this factory
IOException | if an I/O error occurs when creating the socket | |
UnsupportedOperationException | if the underlying provider does not implement the operation | |
NullPointerException | if s is null |
Diagram: SocketFactory