我在两端的 TcpClient 的 NetWorkStream 周围设置了一个带有 CryptoStream 的客户端/服务器。当我直接从 NetworkStream 读取数据时,双向通信效果很好,但使用 CryptoStream 我无法读取单个可用数据块。我正在关闭 CryptoStream 以导致从服务器调用 FlushLastBlock 并且确实在客户端显示了唯一的 16 字节块(AES 加密)。那么,当有完整的数据块可用时,为什么 CryptoStream.Read() 会阻塞等待数据呢?
PS我已经验证发送一个额外的块允许读者阅读第一个块。这只是一个错误还是设计使然?