我已经使用 Socket 类的异步/IOCP 方法、BeginSend()/BeginRead()/等编写了一个 TCP 服务器。我想使用 SslStream 添加 SSL 功能,但从界面上看,Socket 和 SslStream 并不打算一起工作,特别是因为我根本没有使用 Streams,而 SslStream 似乎依赖于有一个 Stream 来工作.
这可能吗,还是我找错地方了?我是否需要设计我自己的 Stream 子类以馈入我的 Socket 实例并将 SslStream 指向它?由于扩展问题,我的服务器使用 IOCP 对我来说很重要。
最佳答案
将 Socket 包装在 NetworkStream
中将其与 SslStream
一起使用。
Socket socket;
...
using (var networkStream = new NetworkStream(socket, true))
using (var sslStream = new SslStream(networkStream, ...))
{
// use sslStream.BeginRead/BeginWrite here
}
Streams 也公开了 BeginRead/BeginWrite 方法,因此您不会丢失这方面的内容。
关于c# - 将 SslStream 与 IOCP 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1262324/