将SslStream与IOCP一起使用

Ada*_*ble 1 .net c# sockets sslstream iocp

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

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

dtb*_*dtb 6

将您的Socket包装NetworkStream在一起以便与它一起使用SslStream.

Socket socket;
...
using (var networkStream = new NetworkStream(socket, true))
using (var sslStream = new SslStream(networkStream, ...))
{
   // use sslStream.BeginRead/BeginWrite here
}
Run Code Online (Sandbox Code Playgroud)

Streams也公开了BeginRead/BeginWrite方法,所以你不要忽略这个方面.