无阻塞SSL套接字最可靠的高级语言/库是什么?

时间:2019-06-12 15:24:17

标签: ssl nonblocking

每个人和他们的狗都可以编写阻塞套接字代码,但是非阻塞则要困难得多。向其中添加SSL,即使在协议级别,它也会给非阻塞处理带来复杂性,您可能会走运。显然,可以使用直接OpenSSL调用在C中完成此操作,但这变得很复杂,感觉就像是在重新发明轮子。但是高级语言和库通常具有其无阻塞支持的漏洞和不可靠的支持。

我已经尝试过以下操作:

  • 红宝石与kgio。它包含了一些称为kgio_monkey_ext的内容,该内容显然已从Internet上消失,并且从未记录。它没有用,只是不断阻塞。
  • 具有AnyEvent和Net :: SSLeay的
  • perl。通常可以正常工作,但偶尔会丢失一些套接字,有时会阻塞甚至挂断电话。另外,我发现本文描述了Net :: SSLeay对非阻塞套接字的支持的一些问题:http://devpit.org/wiki/OpenSSL_with_nonblocking_sockets_%28in_Perl%29可能相关,也可能不相关。

我的动机是编写一种SSL连接代理,它以服务器地址和端口的形式接受来自客户端的请求,使用SSL / TLS连接到它们,然后代理普通客户端和SSL服务器之间的通信,同时响应其他并行请求。

在可靠性(不阻塞,不泄漏内存,不泄漏套接字),更清晰的文档/示例方面,是否会有任何语言和/或库比AnyEvent和Net :: SSLeay更适合于此类任务以及我需要写多少?

或者,这是否已经在某处实现,可以修改为支持我所需的请求协议的形式?

还是应该更努力地使用perl?

0 个答案:

没有答案