Java 7 附带了异步 I/O。这里有人知道我是否可以使用它对 SecureSocket
进行异步调用吗?
改写:如果我正在使用 sslContext.getSocketFactory().createSocket("127.0.0.1", 42)
,则使用 socket.getOutputStream()
和 socket.getInputStream()
以阻塞方式通信;我需要进行哪些更改才能访问异步函数,从而允许我重新编写代码以异步工作?
最佳答案
具有非阻塞 I/O 的 Java 中的 SSL/TLS 在 Java 7 中并不是新的,而是在 Java SE 5 中引入的。这可以使用 SSLEngine
来完成。而不是套接字。
SSLEngine
是出了名的难用。原则上,您可以使用 Channels
在 channel 和 InputStream
/OutputStream
之间进行转换类,但在使用 SSLEngine
本身方面还有很多工作要做。这里有一些提示:
- > Official examples in the JSSE Reference Guide .
- > Using SSL with Non-Blocking IO by Nuno Santos .
- 您可以查看使用它的现有开源框架,例如 Grizzly或 Simple .
- 第 8 章 Fundamental Networking in Java .
关于Java 7 异步 SecureSocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15115076/