2009-08-11 3 views
1

Я написал TCP-сервер, используя методы асинхронного/IOCP класса Socket, BeginSend()/BeginRead()/etc. Я хотел бы добавить возможности SSL с помощью SslStream, но из интерфейса он выглядит так, как Socket и SslStream не предназначены для совместной работы, в частности, потому что я вообще не использую Streams, и SslStream, похоже, зависит от наличия Stream для работы с ,Использование SslStream с IOCP

Возможно ли это, или я ищу не в том месте? Нужно ли мне создавать свой собственный подклассы 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 
} 

Потоки подвергают методам BeginRead/BeginWrite также, поэтому вы не теряете этот аспект.

 Смежные вопросы

  • Нет связанных вопросов^_^