【发布时间】:2017-12-02 22:23:20
【问题描述】:
我写了一个 TCP 库,现在想支持 SSL。该库将连接/断开连接部分与数据流的处理分开。我可以插入一个流处理程序,该处理程序将传输和接收字节块,但它无权访问提供该数据的套接字。
所有使用 SslStream 的例子看起来都差不多是这样的:
TcpClient client = new TcpClient();
Sslstream sslStream = new SslStream(client.GetStream(), true, ValidCerts);
我想在没有 TcpClient 提供流的情况下使用 SslStream。
有没有我可以做到这一点?
【问题讨论】:
-
到底是什么问题?将您拥有的任何流放入
SslStream构造函数而不是client.GetStream。如果这不起作用 - 显示代码以及它到底是如何不起作用的(异常详细信息)。 -
您对 SSL/TLS 的理解程度如何?你应该看看RFC 5246 了解网络活动需要什么。
-
也许我想太多了,但我原以为你需要 2 个流(出口,入口),否则进来的字节会覆盖出去的字节。
-
一个 NetworkStream 真的是两个流,因为写方法给你出口,读方法给你入口。在 Java 中,可比较的方法是
Socket.getInputStream()和Socket.getOutputStream(),这使得区别可能更加清晰。