2009-08-11 44 views
1

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

这是可能的,还是我看错了地方?我是否需要构建自己的Stream子类,并将其提供给我的Socket实例并指向SslStream?由于缩放问题,我的服务器使用IOCP对我来说很重要。

回答

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方法,所以你不会放弃这个方面。