【问题标题】:Using SslStream with IOCP将 SslStream 与 IOCP 一起使用
【发布时间】:2009-08-11 19:06:28
【问题描述】:
我使用 Socket 类的异步/IOCP 方法,BeginSend()/BeginRead()/等编写了一个 TCP 服务器。我想使用 SslStream 添加 SSL 功能,但从界面看来 Socket 和 SslStream 并不打算一起工作,特别是因为我根本没有使用 Streams 并且 SslStream 似乎依赖于使用 Stream .
这可能吗,还是我找错地方了?我是否需要制作自己的 Stream 子类来输入我的 Socket 实例并指向 SslStream ?由于扩展问题,我的服务器使用 IOCP 对我来说很重要。
【问题讨论】:
标签:
c#
.net
sockets
iocp
sslstream
【解决方案1】:
将您的 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 方法,因此您不会失去这一方面。