procedure TForm1.btnHttpGetClick(Sender: TObject);
begin
idtcpclnt1.Host := '192.168.10.88';
idtcpclnt1.Port := 80;
idtcpclnt1.Connect();
try
idtcpclnt1.SendCmd('GET /');
self.mmo1.Lines.Clear;
self.mmo1.Lines.Add(idtcpclnt1.CurrentReadBuffer);
finally
idtcpclnt1.Disconnect;
end; end;
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 作为标准组件打包到发行包里了。
为了兼顾简单可靠和高效,Indy 是基于阻塞模式工作的。阻塞模式需要等待任务完成才返回,这
样, 当主线程里调用阻塞任务运行时, 程序不能处理用户界面的消息。Indy 提供了一个组件
TidAntiFreeze 来解决这个问题。只要在你的程序里,简单地添加一个TidAntiFreeze 组件到窗体的任意
位置,不需要写任何代码(最多把超时时间改一下),就可以很好地解决用户界面不响应的问题。
Indy 网络组件主要有5 个部分,分别为Indy Clients(客户端)、Indy Servers(服务器)、Indy Intercepts
(中断)、Indy I/O Handle(输入/输出控制)和Indy Misc(杂项),