- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
INTERNET 上所有在 NIO2 上可用的源/示例都没有 TLS/SSL 支持,
java.nio.channels.AsynchronousSocketChannel
java.nio.channels.AsynchronousServerSocketChannel
据我了解,连接的 SSLEngine 生命周期不同于 AsynchronousSocketChannel.connect && AsynchronousServerSocketChanne.accept,TLS/SSL 应该封装在 AIO 实现中,那么我如何同时使用它们......?注意:我在 Grizzly 项目中的一个视频中谈到他们已经实现了它,我查看了源代码,但我看到了 AIO 而不是 TLS/SSL 集成...
提前致谢!
最佳答案
对原问题的评论确实是正确的。 SSLEngine使用 ByteBuffer 操作直接地。
这意味着它与 AIO 兼容。您首先接受一个连接。然后客户端连接并执行初始写入。要确定您是否有足够的缓冲数据,请使用 handshake status和 status .如果需要从另一端提供更多数据,引擎将不断告诉您“NEED_UNWRAP”。所以你需要保留一个 ByteBuffer 对象队列。同样,引擎会不断告诉您“NEED_WRAP”是否需要在继续之前将更多数据发送到另一端。你继续前进,直到你从握手状态得到“完成”。
不过,我建议您使用 Netty 之类的东西,它可以让这一切变得更简单。需要注意的是,Netty 在 4 的 alpha 阶段确实支持 AIO。但是,显示 AIO 比 NIO 慢。因此,它被删除了。
但是,Netty 不仅会使事情比尝试直接使用 NIO 或 AIO 更简单,而且如果重新引入 AIO,还可以轻松地在两者之间切换。
可在 Netty 中找到使用 SSL 的完整示例 here .
关于Java NIO2 AsynchronousSocketChannel/AsynchronousServerSocketChannel 和 TLS/SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854255/
我正在使用java AsynchronousSocketChannel来 self 的项目中的 nio2。我也在 ubuntu 14.04 上使用 oracle jdk 1.7.0_80。 我的项目是
如何在无法导入的 anroid 中使用 AsynchronousSocketChannel import java.nio.channels.AsynchronousSocketChannel; im
我正在制作一个程序,需要将加密数据从一台电脑发送到另一台电脑。我不想每次都明确地加密/解密数据,然后使用 AsynchronousSocketChannel 发送数据,而是想知道是否可以以某种方式扩展
我的服务器使用 AsynchronousServerSocketChannel,它使用 CompletionHandler 监听客户端连接。当客户端连接被接受时,AsynchronousSocketC
我正在 Kotlin 中试验一个简单的 HTTP1.1 服务器,以便尝试重现一个更复杂的问题,即在关闭 AsynchronousSocketChannel 时内容似乎被切断 net::ERR_CONT
尊重, 我尝试使用新的Java NIO2在客户端和服务器端创建异步SocketChannel并进行通信,但问题是我发送到服务器上套接字的所有消息,套接字都将其读取为一条消息。这是代码: 我创建用于写入
要执行反序列化,我需要一个ObjectInputStream。但我们只是使用AsynchronousSocketChannel,它无法转换为ObjectInputStream。我能做什么? 最佳答案
我找到了一个 related question ,但它并不是特别有用,因为它没有提供完整的示例。 问题:如何使用AsynchronousSocketChannel用于使用固定大小的缓冲区读取未知长度的
我正在试验 NIO2 并遇到了问题。 这是我使用的代码: ByteBuffer buffer = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE); chann
我正在尝试使用 CompletionHandler 而不是 Futures 在 vert.x worker verticle 中的 AsynchronousSocketChannel 上实现单个请求/
我正在开发一个TCP服务器,我很好奇是否可以同步AsynchronousSocketChannel的读取和写入方法。我将 channel 包装到另一个类中,因为我的 channel 需要一些附加功能。
我一直在使用 AsychronousSockets,但在运行大负载时遇到了接收 ReadPendingException 的问题。 一些背景:我希望客户端异步向服务器发送消息,然后监听响应。 响应可以
当 Telnet 客户端断开连接时,AsynchronousSocketChannel 会触发其 CompletionHandler 的 completed(Integer result, ByteB
这个问题已经有答案了: What does a "Cannot find symbol" or "Cannot resolve symbol" error mean? (18 个回答) 已关闭 4 年
我正在使用 java 7 的 nio2 AsynchronousSocketChannel 来使用 CompletionHandlers 执行读取和写入操作。首先我想知道写操作是否能保证完全写出Byt
我正在使用 java 7 的 nio2 AsynchronousSocketChannel 来使用 CompletionHandlers 执行读取和写入操作。首先我想知道写操作是否能保证完全写出Byt
INTERNET 上所有在 NIO2 上可用的源/示例都没有 TLS/SSL 支持, java.nio.channels.AsynchronousSocketChanneljava.nio.chann
我是一名优秀的程序员,十分优秀!