林皖秋 发表于 2012-11-7 12:32:43

DELPHI超级Internet控件集--INDY v9.17下载

本帖最后由 林皖秋 于 2012-11-7 12:39 编辑

你有没有用DELPHI开发Internet程序?是不是常常会烦恼FastNet组件为什么没有源代码?有很多问题,不看源代码,真不知道是什么问题。是不是也觉得FastNet组件支持的网络协议还不够多?现在不用烦恼了,有一套功能很丰富、使用很方便、开放源代码的免费INTERNET控件集可以解决你的烦恼。这套控件集就是INDY了。

  什么是INDY?它有什么功能?怎么用?就让我慢慢道来。

  INDY的全名是Internet Direct(也叫Winshoes),它是一套开放源代码的Internet控件集,它支持大部分流行的Internet协议,包括TCP、UDP、DNS、ICMP、FINGER、FTP、GOPHER、HTTP、POP3、SMTP、TELNET、WHOIS等,支持BASE64、MD2、MD4、MD5等编解码,提供INTERNET流行协议的客户端和服务器控件。INDY控件集的客户端和服务器控件都有完整、详细的源代码例程和帮助文件,用户可以根据这些例子,简单方便快速的建造各种服务器程序,例如WEB服务器、TELNET服务器、IRC服务器、TCP、UDP服务器等,而这些服务器都是支持多线程的。用户也可以很简单的编写出各种客户端程序,例如EMAIL、FINGER、FTP、PING、TELNET等。著名的OICQ使用的协议是UDP,有了INDY你可以使用UDP服务器和UDP客户端写出一个和OICQ较劲的东东来。

  INDY是完全基于SOCKET阻塞工作模式(后面讨论)的开发库,现在已经支持BORLAND DELPHI、C++ BUIDER和最新的Kylix(LINUX里的DELPHI)等开发平台。目前,INDY的最新正式发行版本是8.0版,最新BETA版本是8.1版。INDY8.0支持DELPHI 4、DELPHI 5、C++BUIDER 4、C++BUIDER 5、Kylix等版本。Kylix已经把INDY作为标准组件打包到发行包里了。而且据说DELPHI 6.0将会把INDY作为它的INTERNET基本组件,由此可见INDY的强悍实力。

  看了怎么多吸引人的特性,是不是迫不及待的想得到它了?不用急,你可以随时到INDY的主页上下载一份免费的源代码来安装,INDY的网址是(http://www.nevrona.com/Indy/),主页上会公布最新的INDY消息,发表更新的源代码和相关文档。如果在开发过程中遇到什么问题,可以通过访问BORLAND公司的新闻组(news://newsgroups.borland.com)里面的borland.public.delphi.internet.winsock和borland.public.cppbuilder.internet两个主题来获得免费的技术支持。INDY小组会及时回答在新闻组里提出的关于INDY的问题。你也可以把使用INDY的心得技巧、发现的BUG,发表到新闻组里,为INDY的发展作出一份贡献。

 INDY的安装很简单,现在INDY的网站正式提供WINDOWS版本的安装程序供下载,支持Kylix的版本则包含在BORLAND公司的Kylix发行包里,不过由于BORLAND修改了一些文件的原因,导致INDY的例程都不能编译成功,所以INDY网站提供了针对Kylix修改的例程文件下载。下载了安装程序后,执行安装程序(请先把你的开发平台程序关掉),设置好安装路径(图一),选择好你的开发平台的种类(DELPHI或C++BUIDER)和版本(图二),就可以了。等安装完成,打开你的开发平台程序,就可以在控件栏里发现新加的三个栏目:INDY SERVERS、INDY CLIENTS、INDY MISC(图三)。分别是INDY的服务器类、客户端类、杂项控件。而安装了INDY的目录里,包含有INDY的控件文件和控件源代码以及例程。你还可以在网站上下载它的帮助文件,帮助文件里包括各个控件的详细说明,是应用好INDY的必备手册。
http://www.yesky.com/SoftChannel/72342371928440832/20010406/yk29y8001.gif

图一 选择开发平台类型和版本

http://www.yesky.com/SoftChannel/72342371928440832/20010406/yk29y8004.gif

图二 控件面板图

  安装好INDY后,可以开始尝试INDY的新鲜好味道了。INDY提供的丰富例程就是绝好的教材。先编译几个例程,看看INDY的强大功能吧。要想熟练的使用好INDY,就得多多学习这些例程和参考帮助文件。

  熟悉WINSOCK编程的读者一定会觉得奇怪吧,为什么INDY是是完全基于SOCKET阻塞工作模式的呢?异步模式(非阻塞模式)是WINSOCK的一大特点,为什么不用呢?

  其实,之所以大多数WINDOWS下的INTERNET程序都使用异步模式,这和WINSOCK的历史有关。当WINSOCK被移植到WINDOWS的时候,当时的WINDOWS操作系统还是WINDOWS 3.1,而WINDOWS 3.1是不支持多线程的,不象UNIX下可以使用FORK来运行多进程。在WINDOWS 3.1下,如果使用阻塞模式,在通讯时会锁定用户界面使程序没有响应,为了避免这种情况,WINSOCK就引入异步模式这个新特性。而使用异步模式来编制INTERNET程序也就成了WINDOWS程序员的经典教条。但是,随着新的WINDOWS操作系统的出现,如WINDOWS 95、NT、98、ME、2000等,这些操作系统开始支持多线程。异步模式这个教条仍然深入人心,使很多程序员会下意识的拒绝使用阻塞模式。

  事实上,UNIX下的SOCKET只支持阻塞模式(现在UNXI的SOCKET有了一些新的非阻塞特性,不过绝大多数应用仍然使用阻塞模式)。阻塞模式具有以下几个比异步模式优越的特点:

  编程更简单,可以把所有处理SOCKET的代码放在一起,顺序执行,而不用分散在不同的事件处理代码段里。

  更容易移植到UNIX,使用INDY的DELPHI程序,可以不做太多(甚至不做)修改,就可以把WINDOWS的DELPHI源代码拿到LINUX下,用Kylix来编译成LINUX下的网络程序。
更容易在多线程程序里使用,由于阻塞模式的代码可以放在一起,可以很方便的把这些代码包裹在线程里面来使用,而不象异步模式,需要针对不同的事件,设置不同的处理代码。

  为了兼顾简单可靠和高效,INDY是基于阻塞模式工作的。阻塞模式需要等待任务完成才返回,这样,当主线程里调用阻塞任务运行时,程序不能处理用户界面的消息。INDY提供了一个控件TidAntiFreeze来解决这个问题。只要在你的程序里,简单的填加一个TidAntiFreeze控件到任何地方(随便往FORM上放),不需要写任何代码(最多把超时时间改一下),就可以很好的解决用户界面不响应的问题。

  下面有两段示范代码,可以看出INDY控件的程序代码和其他使用异步模式的Internet控件的程序代码相比,是多么的简洁:

代码一:INDY控件的程序代码(IndyClient代表INDY控件的一般形式)

with IndyClient do begin

Connect;

Try

// 在这里写入你的处理代码

finally

Disconnect;

end;

end;

代码二:其他控件的程序代码(SocketComponent代表一般的Internet控件)

procedure TFormMain.TestOnClick(Sender: TComponent);

begin

with SocketComponent do begin

Connect; try

while not Connected do begin

if IsError then begin

Abort;

end;

Application.ProcessMessages;

OutData := 'Data To send';

while length(OutData) > 0 do begin

Application.ProcessMessages;

end;

finally Disconnect; end;

end;

end;

procedure TFormMain.OnConnectError;

begin

IsError := True;

end;

procedure TFormMain.OnRead;

var

i: Integer;

begin

i := SocketComponent.Send(OutData);

OutData := Copy(OutData, i + 1, MaxInt);

end;

关于INDY的简单介绍就到这里了,感兴趣的朋友就去下载一个用吧,你一定会喜欢上它的。

下载地址:**** Hidden Message *****
大家把自己写的软件或者源码可以上传到百度U盘里面分享无广告的下载:
注册百度云盘地址:http://yun.baidu.com/disk/beinvited?uk=908566635




因為·有你 发表于 2012-11-7 13:27:57

我来做个沙发吧,哈哈,多谢分享

⒈个ん啲ぜ界 发表于 2012-11-7 19:01:02

(@_@) 发表于 2012-11-8 04:38:30

绝对给力的东东

汉武帝 发表于 2012-11-9 00:21:29

辛苦了!数据取走。感谢留下!顶顶顶!

aa7769640 发表于 2012-11-9 09:23:01

这个帖子不错,大家快来顶起来!

iwangz 发表于 2012-11-18 23:49:40

INDY的简单介绍

小房 发表于 2012-11-23 09:10:25

。。。。。。

only丶 发表于 2012-11-23 09:22:09

{:7_174:}{:7_174:}kank

伦敦和尚 发表于 2012-11-27 00:45:08

有没搞错这还要隐藏啊!!!!

半半半半半 发表于 2013-4-12 15:19:45

强烈支持楼主ing……

996114 发表于 2013-4-12 20:38:11

我来做个沙发吧,哈哈,多谢分享

煜心寒冰 发表于 2013-4-14 09:50:55

淡定,淡定,淡定……

yogibear 发表于 2013-4-14 18:50:01

我是来看内容的~~~谢谢分享~~~

惆怅客 发表于 2013-4-16 09:56:20

真是难得给力的帖子啊。

tlwangxd 发表于 2014-10-27 16:33:52

学习

aijianli 发表于 2014-11-25 22:47:03

下载看看 主要想想试试telnet客户端的编写

rocky_dai 发表于 2024-5-3 09:28:17

我希望下载这个控件

asan13 发表于 2024-6-13 19:43:11

谢谢
页: [1]
查看完整版本: DELPHI超级Internet控件集--INDY v9.17下载