2009-08-11 43 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方法,所以你不會放棄這個方面。