本书介绍了使用Delphi实现Windows的网络编程的方法。书中的实例充分利用Delphi VCL与Winsock API的特点,方便、快捷地实现各种网络功能。全书由4部分组成:第一部分介绍TCP/IP协议、Winsock知识和Delphi的基本网络组件;第二部分讲解如何利用Delphi和Winsock的优点实现主要协议以及局域网内部使用的应用程序;第三部分是网络上常用的编码算法与加密的实现等内容;第四部分附录提供了网络编程时的常用参考资料。\r\n 本书提供了内容丰富的实例,并附有全部实现代码。本书适合于利用Delphi进行网络程序开发的程序员阅读。\r\n\r\n
第1章 TCP/IP协议 \r\n\r\n1.1 TCP/IP协议族 \r\n1.1.1 OSI模型 \r\n1.1.2 DoD模型 \r\n1.1.3 TCP/IP主要协议 \r\n1.1.4 进程/应用层协议\r\n1.1.5 主机-主机层协议\r\n1.1.6 Internet层协议\r\n1.2 TCP/IP基本概念介绍 \r\n1.2.1 IP报文数据封装 \r\n1.2.2 IP数据报的分段与重组 \r\n1.2.3 IP地址与子网掩码 \r\n1.2.4 域名 \r\n1.2.5 端口 \r\n1.2.6 URI及其有关形式 \r\n\r\n第2章 Winsock知识 \r\n\r\n2.1 网络编程接口(Winsock API) \r\n2.2 Winsock编程模型 \r\n2.2.1 从UNIX下的Socket编程模型演化到Winsock \r\n2.2.2 理解Socket \r\n2.2.3 使用Winsock进行开发 \r\n2.3 Winsock常用结构说明 \r\n2.3.1 sockaddr_in结构 \r\n2.3.2 hostent结构 \r\n2.4 Winsock常用函数介绍 \r\n2.4.1 基本Socket函数 \r\n2.4.2 数据库函数 \r\n2.4.3 Winsock规范提供的扩展函数 \r\n2.5 常用Winsock函数使用说明 \r\n2.5.1 初始化Winsock \r\n2.5.2 创建Socket \r\n2.5.3 执行绑定 \r\n2.5.4 建立Socket连接 \r\n2.5.5 网络I/O函数 \r\n2.5.6 关闭Socket \r\n2.6 错误处理 \r\n2.6.1 错误处理函数 \r\n2.6.2 常见错误码 \r\n2.7 使用Winsock API实现Finger \r\n2.7.1 基本的流程 \r\n2.7.2 使用Winsock API实现Finger \r\n2.8 使用Winsock API实现Echo \r\n\r\n第3章 Delphi网络组件 \r\n\r\n3.1 Delphi Socket网络组件介绍 \r\n3.1.1 ClientSocket组件 \r\n3.1.2 ServerSocket组件\r\n3.2 Delphi FastNet网络组件介绍 \r\n3.2.1 NMDayTime组件 \r\n3.2.2 NMEcho组件 \r\n3.2.3 NMFinger组件\r\n3.2.4 NMFTP组件 \r\n3.2.5 NMHTTP组件\r\n3.2.6 NMMsg组件 \r\n3.2.7 MMSGServ组件 \r\n3.2.8 NMNNTP组件 \r\n3.2.9 NMPOP3组件 \r\n3.2.10 NMSMTP组件\r\n3.2.11 NMStrm组件\r\n3.2.12 NMStrmServ组件 \r\n3.2.13 NMURL组件 \r\n3.2.14 NMUUProcessor组件 \r\n3.2.15 NMUDP组件 \r\n3.2.16 Powersock组件 \r\n3.2.17 GeneralServer组件 \r\n3.3 Delphi其他网络组件 \r\n3.3.1 WebDispatcher组件 \r\n3.3.2 PageProducer组件\r\n3.3.3 QueryTableProducer组件 \r\n3.3.4 DataSetTableProducer组件\r\n3.3.5 DataSetPageProducer组件 \r\n3.4 使用组件进行网络编程 \r\n3.4.1 使用NMFinger组件来实现Finger功能 \r\n3.4.2 使用NMEcho组件实现Echo功能 \r\n\r\n第4章 客户端程序和服务器端程序 \r\n\r\n4.1 网络客户服务体系介绍 \r\n4.2 服务器与客户端的通信形式 \r\n4.3 用FastNet组件实现字符信息传送 \r\n4.4 用FastNet组件实现流信息传送 \r\n4.5 使用Socket组件实现信息传送 \r\n4.5.1 Socket组件与FastNet组件的区别 \r\n4.5.2 基本功能 \r\n4.5.3 客户端程序\r\n4.5.4 服务器端程序 \r\n\r\n第5章 基本网络功能实现 \r\n\r\n5.1 获取IP地址 \r\n5.1.1 利用系统工具获得IP地址 \r\n5.1.2 使用GetHostByName函数来获取IP \r\n5.1.3 使用WSAAsyncGetHostByName函数获取IP地址 \r\n5.1.4 多IP情况的处理 \r\n5.1.5 关于IP地址和实际的地址的区别 \r\n5.2 获取子网掩码 \r\n5.2.1 Windows NT系统中获取子网掩码 \r\n5.2.2 Window 9x系统中获取子网掩码 \r\n5.3 获取计算机名 \r\n5.3.1 获取和设置本机主机名 \r\n5.3.2 获取远程主机名称 \r\n5.4 网络连接情况检测 \r\n5.4.1 使用WinInet高级函数库函数检测网络状态 \r\n5.4.2 通过读取系统状态参数检测网络状态 \r\n5.5 获取DNS设置 \r\n5.5.1 Windows NT系统中获取DNS信息 \r\n5.5.2 Windows 9x系统中获取DNS信息 \r\n5.6 网卡信息的获取 \r\n5.6.1 使用GUID获取网卡地址 \r\n5.6.2 NetBIOS来获得MAC地址 \r\n5.6.3 使用RPC方式获得MAC地址\r\n\r\n第6章 TCP协议相关网络协议应用 \r\n\r\n6.1 HTTP协议客户端实现 \r\n6.1.1 HTTP协议简介 \r\n6.1.2 HTTP协议的有关内容 \r\n6.1.3 编制页面浏览程序 \r\n6.1.4 调整Internet属性 \r\n6.1.5 使用NMHTTP组件访问需要认证站点 \r\n6.1.6 NMHTTP组件的HeaderInfo属性 \r\n6.1.7 通过代理访问站点 \r\n6.1.8 关于Cookie \r\n6.1.9 下载URL资源\r\n6.1.10 下载进度显示 \r\n6.2 FTP协议客户端实现\r\n6.2.1 FTP协议简介 \r\n6.2.2 FTP服务器上的文件权限 \r\n6.2.3 FTP目录浏览 \r\n6.2.4 FTP目录操作 \r\n6.2.5 FTP文件操作 \r\n6.3 POP3协议客户端实现 \r\n6.3.1 POP3协议简介 \r\n6.3.2 收取邮件 \r\n6.3.3 编制邮件提示程序 \r\n6.4 SMTP协议客户端实现 \r\n6.4.1 SMTP协议简介 \r\n6.4.2 发送邮件 \r\n6.4.3 发送匿名邮件 \r\n6.4.4 发送邮件列表 \r\n6.4.5 向系统默认邮件程序发信息 \r\n6.5 TELNET协议客户端实现 \r\n6.5.1 TELNET协议简介 \r\n6.5.2 一个简单的TELNET客户端程序 \r\n6.5.3 TELNET协议的协商方式 \r\n6.5.4 TELNET协议使用的常量 \r\n\r\n第7章 UDP协议相关网络应用 \r\n\r\n7.1 发送UDP数据包 \r\n7.1.1 使用NMUDP组件发送UDP数据包 \r\n7.1.2 使用Winsock函数发送UDP数据 \r\n7.2 利用UDP协议进行网络广播 \r\n\r\n第8章 ICMP协议相关网络应用 \r\n\r\n8.1 ping指令程序实现 \r\n8.2 tracert指令程序实现 \r\n\r\n第9章 CGI及ISAPI相关编程 \r\n\r\n9.1 CGI、ISAPI基础知识 \r\n9.1.1 公共网关接口(CGI) \r\n9.1.2 ISAPI \r\n9.1.3 CGI和ISAPI URL \r\n9.2 创建Web应用程序 \r\n9.2.1 TwebRequest和TwebResponse \r\n9.2.2 表单处理程序 \r\n9.2.3 利用HTML内容生成器建立动态网页 \r\n9.2.4 传输二进制数据流文件 \r\n\r\n第10章 代理相关网络应用 \r\n\r\n10.1 网络代理程序基础 \r\n10.1.1 使用代理的原因 \r\n10.1.2 网络代理的原理 \r\n10.2 Socks5代理客户端的实现 \r\n10.2.1 Socks5协议主工作流程和数据格式说明 \r\n10.2.2 Socks5身份认证子协商 \r\n10.2.3 Socks5代理客户端程序实现 \r\n10.3 TELNET代理服务程序实现 \r\n\r\n第11章 拨号网络编程 \r\n\r\n11.1 使用AT命令拨号 \r\n11.2 使用TAPI \r\n11.3 使用RAS (远程访问服务) \r\n11.3.1 用系统电话簿进行拨号 \r\n11.3.2 电话簿条目的管理 \r\n11.3.3 在程序中创建拨号连接 \r\n11.3.4 状态通知 \r\n\r\n第12章 IRC协议编程 \r\n\r\n12.1 IRC协议基本概念 \r\n12.1.1 频道(channel)\r\n12.1.2 消息(message)\r\n12.1.3 昵称(nickname)\r\n12.2 安装使用IRC服务 \r\n12.2.1 安装IRC服务器 \r\n12.2.2 使用IRC客户端 \r\n12.3 IRC命令 \r\n12.3.1 连接和登录命令 \r\n12.3.2 频道操作 \r\n12.3.3 用户查询命令 \r\n12.3.4 其他命令 \r\n12.4 编写IRC客户端 \r\n12.4.1 IRCClient控件简介 \r\n12.4.2 使用IRCClient控件编程 \r\n\r\n第13章 网络编程常用编码 \r\n\r\n13.1 MIME编码 \r\n13.2 CRC校验 \r\n13.3 HASH算法\r\n13.4 对称加密算法 \r\n13.4.1 DES算法 \r\n13.4.2 Blowfish算法 \r\n13.4.3 IDEA \r\n13.5 Crypto编程 \r\n\r\n附录A 常用服务端口 \r\n附录B 常用RFC文档编号 \r\n附录C Delphi网络资源 \r\n
“真正的程序员用C,聪明的程序员用Delphi。”这句话体现了C与Delphi的最大区别。Delphi的特色就在于它的VCL完美地封装了Windows API,使用VCL可以非常方便地实现许多复杂的功能。选择Delphi,就意味着可以获得相当数量的第三方组件的支持,可以使用大量的源代码,从而节省程序员的时间与精力。可是选择C或者C++就不一样了,在编程的时候需要程序员深入了解并掌握Windows的复杂体系。
Delphi程序总是运行在Windows平台上的。Delphi的VCL虽然提供了对Windows API的完美封装,为一个程序员在初级阶段的快速成长提供了极好的学习环境,但这种成长是有着很强的依赖性的,一旦脱离了VCL的支持进入陌生领域,Delphi程序员就会不知所措。只有了解了Windows API,才能突破VCL组件的限制,深入Windows编程。特别是在进行网络编程的时候,需要调用大量的Winsock API协同工作,如果仅仅是使用Delphi提供的有限的VCL组件,最多也就是进行一些“大众化”的程序设计,更多的特殊网络功能就无法实现。
本书探讨了Windows的网络编程的问题,Delphi只是其中使用的主要实现工具。实现过程充分利用Delphi VCL与Winsock API的特点,通过结合两者的长处,从方便、快捷的角度实现大多数的网络功能。
本书由4个部分组成。第一部分由第1、2、3章组成,主要介绍TCP/IP协议、Winsock知识和Delphi的基本网络组件,讲解使用Delphi进行网络编程的基础知识。第二部分(第4章到第12章)是主要协议的实现部分。这部分的内容充分结合Delphi和Winsock的优点,根据TCP、UDP、ICMP等协议编制CGI、ISAPI以及局域网内部使用的应用程序。第三部分(第13章)是网络上常用的编码算法与加密的实现等一些在编制网络程序时与安全性等相关的内容。第四部分附录提供了一些网络编程的时候经常使用的参考资料。
本书适用于不满足仅仅利用Delphi的VCL网络相关组件进行网络程序开发的程序员。