| Other |
|---|
| 5.0 tigerFixed |
|
Duplicate :
|
|
|
Duplicate :
|
|
|
Duplicate :
|
|
|
Duplicate :
|
|
|
Relates :
|
The current JSSE javax.net.ssl.SSLSocket API is based on the
java.net.Socket model, which by nature uses a blocking API model. The
introduction of java.nio.channels API (JSR-51) brought a selectable,
non-blocking I/O model to J2SE, but was not based on Sockets. Developers
have requested a non-blocking SSL/TLS implementation that could be
applied to such diverse I/O abstractions, such as:
Socket-Input/OutputStream
non-blocking I/O (polling) (e.g. SocketChannel-nonblocking)
selectable non-blocking I/O, (e.g. SocketChannel-Selectors)
other asynchronous I/O models (e.g. the proposed JSR 203)
local ByteBuffers/byte arrays
A new abstraction called SSLEngine is introduced which separates the
SSL/TLS functionality from the I/O. The SSLEngine operates simply on
inbound and outbound byte streams, and it is the responsibility of the
SSLEngine user to arrange for reliable I/O transport to the peer. By
separating the SSL/TLS abstraction from the I/O transport mechanism, the
SSLEngine can be used with a wide variety of I/O types.
|