有人能告诉我哪个更稳定吗?我知道每个选项都有优劣之分,但哪一个对于http等方面更好呢?
在我的上一个应用程序中,我使用了indy9,但我对它不满意,因为我有时会遇到奇怪的错误。
有人可以推荐一个吗?
我在很多项目中都使用了Indy,主要是作为HTTP服务器和代理,使用过9和10版本。有时候这些项目会有非常密集的流量,在这种情况下Indy从未让我失望过,非常稳定。
但是我也遇到了一些“奇怪”的情况,不得不深入挖掘来找到潜在的问题。我也不喜欢Indy处理许多事情时经常通过异常处理方式来解决。总体而言,我更喜欢ICS的编码风格,让我们接着谈ICS。
ICS使用非阻塞套接字,而Indy使用阻塞式的。虽然非阻塞看起来好像更好,但在很多情况下我觉得它很烦人。问题在于回调函数会导致代码的自然流程丢失,这使得编写面向过程类型的库更加困难。此外,我不喜欢一切都通过消息来处理。对我来说,当与多线程混合使用时,它很快变得凌乱。而多线程现在已成为主流。
因此,虽然我喜欢ICS的编码风格和代码质量,但我更喜欢Indy的使用简单性和阻塞模式。你更喜欢哪个取决于你,但这两个库都很成熟和稳定。
这是我的两分钱意见。
我曾经使用过Indy 9和10来进行TCP、HTTP和FTP的操作,遇到的问题非常少。ICS也是一个不错的选择,它是非阻塞的,这将改变你使用它的方式。
我没有用过它,但我听说Synapse也很不错,它是阻塞的。
请记住,Indy始终处于测试阶段。有时您需要使用夜间版本。
哪个更好,实际上取决于具体的使用情况,但我对indy作为http客户端不满意,ICS最终成为了我需要的东西,而且没有那么多随机问题。
需要注意的是,它是非阻塞的,所以它不仅仅是一个替代品。
我使用Indy 9来为超过一百万用户提供稳定的、发布的、生产级别的代码,并从未收到任何奇怪的错误。
我知道这是一个旧帖子,但如果2023年以后的人发现:
Indy不再有官方稳定更新,只有测试版。
ICS支持TLS 1.3(https),并且在组件压缩包中包含易于找到的兼容SSL DLL文件。还可以用于特定用例,比如:
我们不得不放弃Indy10,因为最新的政府项目有特定的证书要求。ICS非常稳定可靠。