我看上去高低不一,很惊讶地发现绝对没有什么可以回答这个问题:
使用SocketAsyncEventArgs
时如何实现SSL / TLS(或类似的)加密?我确实读过一个可以理论上使用{{1} }和“欺骗”,方法是在中间和中间创建一个中间层,以协调数据在套接字中进出流。一切似乎都很荒谬...
我调查了BouncyCastle,但它们似乎不支持服务器端加密。不可否认,此信息的来源已有将近10年的历史,但我自己的研究并未发现任何问题。
我对更改服务器体系结构不感兴趣,因此请不要告诉我“我真的不需要SslStream
的性能,而应该更改为SocketAsyncEVentArgs
”。
我对使用TcpListener
在客户端和服务器之间实施可靠加密的任何方法感兴趣。
答案 0 :(得分:1)
没有将SAEA附加到加密的直接方法。他们没有共同的API,所以一切都是桥梁。
最简单的方法是-如您所知-SslStream
,但是:通常与SocketAsyncEventArgs
不兼容。还有其他选择-例如,我可以想到至少3种不同的“管道”方法;但是所有这些都将是 naked SAEA的主要架构变化。因此,如果SAEA与SslStream
之间的差异太大,则SAEA与IDuplexPipe
之间的差异甚至更大。但是,“管道”是为高可扩展性能而设计的设计的,所以...也许无论如何它都适合您的口味?如果有帮助的话,我最近在博客上写了很多 管道。再加上我有客户端/服务器代码的github示例,包括一个2.5M +运维/秒的Redis式服务器。