我正在尝试使用nio套接字& amp;来实现非阻塞SSL连接。的SSLEngine。不成功的消息必须包含足够的数据,以便sslengine可以对其进行解密。我想知道阻塞模式下的普通SSLSocket如何知道https消息已经完全到达了?
是否有任何标志宣布结束https消息/数据包?
由于
答案 0 :(得分:2)
SSL将数据打包到记录中,每条记录包含开头的大小。因此,SSLengine本身知道它需要多少数据。根据{{3}},如果记录未完全读取,则unwrap
的调用将返回BUFFER_UNDERFLOW
,因此无法解密,在这种情况下您需要从连接中读取更多数据。 / p>