3

我负责将 Delphi 2007 应用程序移植到 C#,并且完全没有使用 Delphi 的经验。我想知道 Delphi 包括的两个 Indy 版本之间有什么区别 - Indy 9 和 Indy 10。此时我什至不知道 Indy 是什么。有人可以帮我吗?它们只是 Delphi 库的不同版本吗?使用其中一种有何影响?

谢谢!

4

6 回答 6

6

Indy 是 Internet Direct 的缩写,它是一个用于网络的开源库。它最常用于做与互联网相关的事情,比如发送电子邮件等。

如果您从使用 Indy 8 或 9 的旧版(例如 Delphi 7)应用程序移植,您会发现在 Delphi 2007 中使用 Indy 9 将是一个更容易的移植。如果您不在乎,请使用 Indy 10,因为它对库进行了许多重大改进,并且还有一些重大的架构更改。

于 2009-04-20T15:51:29.180 回答
3

查看 Indy 10 文档,特别是Indy.Sockets 版本 10 中的新增功能对象层次结构的更改部分

http://www.indyproject.org/docsite/html

于 2009-04-20T15:51:11.460 回答
3

Indy 是一个 winsock 包装器,它为网络/互联网编程(ftp、telnet、http 等)提供阻塞套接字行为。

Indy 10 是 Indy 9 的更新版本,虽然这些更改可能会改进架构,但它们删除了一些功能并移动了一些东西。如果您的程序使用了被移动或移除的部分,那么移植到 Indy 10 将会很痛苦。

如果您从 Delphi 迁移到 C#,那么您会发现 Indy 的 C# 版本与 Delphi 版本非常不同。至少当我看着它时。

于 2009-04-20T17:32:58.797 回答
3

一些细节:

  • Indy10 在 D2005 中已经存在,尽管版本 D2005 和 D2006 允许选择安装哪一个。
  • .... 没关系,在任何情况下始终安装最新和最好的以获得最新的修复程序。
  • Indy10 内部比较好,但是因为他们拆分成几个模块,初学者手动编译时经常会遇到问题。Indy 开发人员的工作方式大致是强加给用户的,我认为回想起来这是不必要的,因为在实践中必须将所有包作为一个整体进行更新。
  • Indy10 是便携式的。indy9 Kylix 支持只不过是一种 hack。
  • 两者都适用于 FPC/Lazarus,但 Indy9 仅适用于 win32。Indy10 也适用于 Unix、OS X、win64 和 wince。在 lazarus 上,Indy10 端口通常更好。
  • 上次我用它做大量工作时,Indy10 的例子不如 indy9 的例子。
  • Indy10 陷入了 .NET 的泥潭,与 indy9 相比,零拷贝明显少得多。这在 Indy10 的一生中变得更糟。
  • Indy10 的一些最初目标(例如对非常高的连接数的光纤支持)没有实现。不过,随着(平均)可用内存的巨大增加,无论如何都需要重新评估对光纤的需求,而且我也不知道微软现在如何看待光纤。
于 2009-05-31T10:15:59.787 回答
1

Indy Delphi 是 Delphi 的一个库(Tcomponent),代表了 WinSock 的真正力量。它提供了用于 Tunelling、TCP/UDP 连接等等的组件。

官方页面是: http: //www.indyproject.org 你会在那里找到你需要的一切。

Indy 9 是旧版本的 Indy 库。Indy 10 与 Delphi 2009 一起于 2008 年问世。图书馆的整个结构在 Indy 10 中发生了变化。

在我看来,印地9更好。

于 2009-04-20T15:44:35.000 回答
1

BorCon 2004 Programming Tracks包括 Chad Hower 的一篇文章,升级到 Indy 10

摘要:本次会议涵盖了对 Indy 10 所做的更改以及如何快速移植现有代码。它还涵盖了 Indy 10 的优势以及为什么应该移植代码。虽然展示了性能和其他演示,但本次会议是一个实用的概述,并不关注演示代码。

内容:

  • 升级到印地 10
  • 印地 10 状态
  • 安装并发版本
  • 兼容性
  • 移民
  • 主要变化和增加
于 2013-03-28T18:22:31.247 回答