将SslStream与IOCP一起使用

时间:2009-08-11 19:06:28

标签: c# .net sockets iocp sslstream

我使用Socket类的异步/ IOCP方法编写了一个TCP服务器,BeginSend()/ BeginRead()/ etc。我想使用SslStream添加SSL功能,但是从界面看起来Socket和SslStream并不打算一起工作,特别是因为我根本不使用Streams而且SslStream似乎依赖于使用Stream来处理

这可能,还是我在错误的地方?我是否需要设计自己的Stream子类,该子类将提供给我的Socket实例并指向SslStream?由于扩展问题,我的服务器使用IOCP对我很重要。

1 个答案:

答案 0 :(得分:5)

将您的套接字包裹在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方法,所以你不要忽略这个方面。