我从不喜欢 winsock 编程的组件,我喜欢它的自然方式,但今天我的同事告诉我在我的项目中使用 Indy。你能告诉我 Indy 是否是我项目的更好替代品吗?-2 个 TCP 服务器,2 个 TCP 客户端。总共 4 个套接字 -该项目是一个代理。
现在是第二个问题,我每天都读到 WSAASyncSelect 不好,这是可以预测的,它来自 winsock 1.1。我的问题是:建议比 AsyncSelect 更好的方法来手动处理 winsock。
谢谢你。
我的所有插座工作都倾向于使用突触,因为它轻巧且易于理解。它不是一个组件架构,而是一个类架构和实现通常就像复制一个现有的帮助类并修改它以执行所需的确切步骤一样简单。Synapse 也有一个很棒的用户社区,并且正在积极开发中,因此可以从 svn 快照中获取最新更改(我相信它的修订版 98,该网站有修订版 38 的 zip)。
是的,Indy 更好,因为它为您提供了一致的 Winsock 通信抽象。区别就像使用 WinApi 和简单地使用 TForm 创建窗口。
是的,印地更好。ICS、Synapse 或任何其他与互联网相关的组件集也是如此。它们处理所有细节,让您处理应用程序的实际功能,而不是将时间浪费在通信层细节上。它们的测试也比您自己的代码所希望的要好得多(因为更广泛的用户群和更广泛的硬件和操作系统)。
如果有构建良好、维护良好且广泛使用的替代方案可用,特别是当这些替代方案是免费的(如 Indy 和 ICS)时,NIH(此处未发明)是一个非常糟糕的主意。