c# - 将 SslStream 与 IOCP 结合使用

标签 c# .net sockets iocp sslstream

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

这可能吗,还是我找错地方了?我是否需要设计我自己的 Stream 子类以馈入我的 Socket 实例并将 SslStream 指向它?由于扩展问题,我的服务器使用 IOCP 对我来说很重要。

最佳答案

将 Socket 包装在 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 方法,因此您不会丢失这方面的内容。

关于c# - 将 SslStream 与 IOCP 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1262324/

相关文章:

c# - 无法理解此 MySQL 连接字符串

c - 连续调用 recvfrom() 丢失数据?

C 中的客户端和服务器 send() 和 recv()

c# - 如何在 C# 中创建未转义的十六进制字节字符串

c# - 使用 SQL Server、MySQL 数据库创建唯一约束

.net - 如何为 WCF 服务创建全局异常处理程序?

.net - TextWriterTraceListener 和带有 GUID 的跟踪文件名

c# - 多个来源的任务取消

java - 如何使用Sockets TCP在java和android之间正确传递对象?

c# - 错误 (502) 网关错误 : When trying to access chatbot deployed on Azure using WebChat channel