「12.网络编程」2.Indy组件包简介

「12.网络编程」2.Indy组件包简介2.Indy组件包简介Indy(Internet Direct)也称为 Winshoes,是由 Nevrona 公司开发的网络组件包。

大家好,欢迎来到IT知识分享网。

2.Indy组件包简介

Indy(Internet Direct)也称为 Winshoes,是由 Nevrona 公司开发的网络组件包。它是一套开放源代码的 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 是基于阻塞模式工作的。阻塞模式需要等待任务完成才返回,这样,当主线程中调用阻塞任务运行时, 程序不能处理用户界面的消息。 Indy 提供了一个组件 TidAntiFreeze 来解决这个问题。只要在你的程序里,简单地添加一个 TidAntiFreeze 组件到窗体的任意位置,不需要写任何代码(最多把超时时间改一下),就可以很好地解决用户界面不响应的问题。

Indy 网络组件主要有 5 个部分,分别为 Indy Client(s 客户端)、Indy Server(s 服务器)、Indy Intercepts (中断)、Indy I/O Handle(输入/输出控制)和 Indy Misc(杂项)。

2.1 Indy Clients 主要组件

Indy Clients 页提供了很多支持常用的 Internet 协议的客户端组件。这些组件简单易用。

组件

功能

IdTCPClient

封装了全套TCP客户端的功能,包括Socket支持,可以直接应用到客户端或用于制作软件时作为基类

IdUDPClient

封装了全套UDP客户端的功能,可以直接应用到客户端或用于制作软件时作为基类

IdDayTime

在客户端实现了应用DayTime协议的功能

IdDayTimeUDP

在客户端实现了应用DayTimeUDP协议的功能

IdEcho

将Echo协议中内容封装成为TidEcho数据类型

IdEchoUDP

将EchoUDP协议中内容封装成为TidEcho数据类型

IdFinger

在客户端实现了应用Finger协议的功能

IdFTP

在客户端实现了应用FTP协议的功能

IdGopher

在客户端实现了应用Gopher协议的功能

IdHTTP

在客户端实现了应用HTTP协议的功能。它支持HTTP1.0和HTTP1.1

IdIcmpClient

用于向其他计算机发送Internet Control Message Protocal数据包

IdPOP3

在客户端实现了应用POP3协议的功能

IdSMTP

在客户端实现了应用SMTP协议的功能

IdSysLog

在客户端实现了产生系统日志文件的功能

IdTelnet

根据网络标准文档在客户端实现了应用TELNET协议的功能

IdTime

在客户端实现了应用Time协议的功能

IdTimeUDP

在客户端实现了应用TimeUDP协议的功能

IdWhois

在客户端实现了应用Whois协议的功能

2.2 Indy Servers 主要组件

Indy Servers 页提供了许多常用的 Internet 协议的服务器端组件,使用这些组件可以简捷灵活地开发多线程且功能强大的服务器端软件。

组件

功能

IdTCPServer

封装了全套TCP服务器的功能

IdUDPServer

封装了全套UDP服务器的功能

IdDayTimeServer

在服务器端实现了应用DayTime协议的功能

IdDayTimeUDPServer

在服务器端实现了应用DayTimeUDP协议的功能

IdEchoServer

在服务器端实现了应用Echo协议的功能

IdEchoUDPServer

在服务器端实现了基于UDP协议的应用Echo协议的功能

IdFingerServer

在服务器端实现了应用Finger协议的功能

IdFTPServer

在服务器端实现了应用FTP协议的功能

IdGopherServer

在服务器端实现了应用Gopher协议的功能

IdHTTPServer

在服务器端实现了应用HTTP协议的功能。它支持HTTP1.0和HTTP1.1

IdSimpleServer

应用TCP协议实现单线程的TCP服务器

IdSMTPServer

用于实现SMTP协议服务器

IdSyslogServer

根据基于标准BSD系统日志协议的网络文档标准实现的系统日志服务器

IdTelnetServer

用于定制基于Telnet协议的服务器架构

IdTimeServer

用于实现Time协议服务器

IdTimeUDPServer

用于实现TimeUDP协议服务器

IdWhoisServer

用于实现NickName或Whois协议服务器

2.3 Indy Intercepts 主要组件

Indy Intercepts 页中的组件主要用来对将要发送的和已经接收的数据进行二次处理,如压缩、解压缩、加密、解密、日志记录等。

组件

功能

IdBlockCipherIntercept

实现了把指定尺寸的数据包进行加密/解密的Indy的中断功能

IdConnectionIntercept

用于制定一种Socket处理架构来处理状态变化和数据传输任务

IdCompressionIntercept

Indy中的压缩中断功能,主要用于把数据流用开放压缩标准zlib重新压缩

IdLogDebug

扩展了TidLogBase类的一些应用,增加了Indy通信组件的DebugOutPut流输出日志记录架构

IdLogEvent

基于日志类的以事件形式实现的组件,主要相应数据输入、输出、状态信息等

IdLogFile

用于把日志类中的信息输出为日志文件

IdLogStream

以流形式实现的日志组件,用于实现发送和接收的功能

2.4 Indy I/Ohandlers 主要组件

Indy I/Ohandlers 页中的组件用于进行数据输入/输出的相关操作。

IdIOHandlerSocket

应用Socket句柄实现的输入输出控制

IdIOHandlerStream

应用Stream句柄实现的输入输出控制

IdIOHandlerThrottle

应用限制每秒向目标输出字节数目规则实现的输入输出控制

IdServerIOHandlerSocket

应用Socket句柄实现的服务器端输入输出控制

IdServerIOHandlerSSL

应用安全Socket层面(SSL)标准实现的输入输出控制

IdSSLIOHandlerSocket

为基于Socket的安全Socket层面(SSL)连接实现的输入输出控制

2.5 Indy Misc 主要组件

Indy Misc 页中的组件提供了一些辅助功能,比如对邮件的编码/解码、查询网络状态等。

组件

功能

IdSocksInfo

在Indy客户端实现了支持SOCKS协议

IdAntiFreeze

允许所有Indy组件在执行任务时,能继续处理Windows消息循环

IdEncoderMime

用于对二进制数据进行Mime标准标码,而转化成文本文件

IdEncoderUUE

用于对二进制数据进行UUE标准标码,而转化成文本文件

IdEncoderXXE

用于对二进制数据进行XXE标准标码,而转化成文本文件

IdDateTimeStamp

在一些协议中用于以不同种格式处理指定数据

IdDecoderMime

用于对通过Mime标准编码后形成的文本文件进行还原操作,使之恢复从前的数据格式

IdDecoderUUE

用于对通过UUE标准编码后形成的文本文件进行还原操作,使之恢复从前的数据格式

IdDecoderXXE

用于对通过XXE标准编码后形成的文本文件进行还原操作,使之恢复从前的数据格式

IdDecoderQuotedPrintable

将被编码引用为客户输入文本组成的数据还原为原来的形式

IdIPWatch

用于检测当前在线状态并返回IP地址

IdLogDebug

提供一个中断连接,用于产生日志文件和日志触发事件

IdMailbox

获取基于IMAP4协议的指定邮箱的信息

IdMessage

基于各种消息协议的封装了完整Internet消息的组件

IdMessageDecoderMime

由TIdMessageDecoder扩展来的主要用于实现RFC-822Mime的专用信息解码

IdNetworkCalculator

用于验证单个或一组网络地址的有效性

IdSysLogMessage

完整封装了系统的日志信息

IdThreadComponent

实现应用执行一个线程的可视化组件

IdThreadMgrDefault

由TIdThreadMgr类继承来的,主要用于给TIdTCPServer等组件提供一个默认的线程管理单元

IdThreadMgrPool

对应用TIdThread类实体的线程池进行管理

IdUserManager

在Indy服务器端实现账户的管理

IdVCard

主要用于通过ReadFromTStrings方法实现用于电子商务的虚拟卡

在以上组件中,套接字编程常用的组件为:IdUDPClient、IdUDPServer 以及 IdTCPClient、IdTCPServer 组件。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/81121.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信