是WSAASyncSelect够好吗?你能否提出一个替代方案? Indy更好吗?

是WSAASyncSelect够好吗?你能否提出一个替代方案? Indy更好吗?

问题描述:

我从来不喜欢用于winsock编程的组件,但我很喜欢它的自然方式,但今天我的同事告诉我使用Indy作为我的项目。请告诉我Indy是否可以替代我的项目? -2 TCP服务器,2 TCP客户端.4套接字总数 - 该项目是一个代理。是WSAASyncSelect够好吗?你能否提出一个替代方案? Indy更好吗?

现在第二个问题,我每天都读到WSAASyncSelect不好,这是可以预测的,它来自于winsock 1.1。我的问题是:建议一些比AsyncSelect更好的手势。

谢谢。

我的首选项倾向于依靠synapse来完成我所有的套接字工作,因为它的轻量级和易于理解的方法。它不是一个组件体系结构,但是类体系结构和实现通常与复制其中一个现有的帮助类并修改它以执行所需的确切步骤一样简单。 Synapse也有一个很好的用户社区,并且正在积极开发中,以便从svn快照中获得最新的变化(我相信它的修订版本98,该网站有一个修订版本38)。

是的,Indy更好,因为它为您提供了一致的winsock通信抽象。区别就像使用WinApi创建窗口并简单地使用TForm。

是的,Indy更好。 ICS,Synapse或其他任何与互联网相关的组件集也是如此。他们处理所有细节,并让您处理应用程序的实际功能,而不是在通信层细节上浪费时间。它们也比你自己的代码有望得到更好的测试(因为更广泛的用户群和更广泛的硬件和操作系统)。

如果有良好的结构,良好的维护和广泛使用的替代品,特别是当这些替代品是免费的(如Indy和ICS)时,NIH(这里没有发明)是一个非常糟糕的主意。