Usando SslStream con IOCP

He escrito un servidor TCP utilizando los métodos asíncronos / IOCP de la clase Socket, BeginSend () / BeginRead () / etc. Me gustaría agregar la capacidad SSL usando SslStream, pero desde la interfaz parece que Socket y SslStream no están diseñados para funcionar juntos, en particular porque no uso Streams y SslStream parece depender de tener un Stream para trabajar .

¿Es esto posible, o estoy buscando en el lugar equivocado? ¿Debo crear mi propia subclase Stream que se alimenta en mis instancias de Socket y apunta SslStream a eso? Es importante para mí que mi servidor use IOCP debido a problemas de escala.

Envuelva su Socket en un NetworkStream para usarlo con un SslStream .

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

Las secuencias también exponen los métodos BeginRead / BeginWrite, para que no pierdas este aspecto.