- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章_Borland_Indy编程
第7章 Borland Indy编程 了解多客户并发通信程序的概念 了解阻塞式和非阻塞式的概念 了解阻塞式的优点和解决凝固的方法 掌握Indy Client的设计方法 掌握多客户Indy Server的设计方法 7.1 多客户并发通信程序和多线程机制 Windows 95/98/Me/NT/2000/Xp支持两种形式的多任务。 第一种类型是基于进程的机制,这也是Windows从一开始就支持的多处理类型。进程本质上是指正在执行着的程序,在基于进程的多任务环境下,两个至多个进程可以并发地执行。关于Windows的多进程能力我们在平常的使用中都能感觉到。 第二种多任务类型是基于线程的机制。线程是指进程中的一个执行流,多个线程可以并发地运行于同一个进程中。在Windows中,每一个进程拥有至少一个线程,称为主线程。基于线程的多任务允许在同一程序中除主线程外其它线程能够并发地执行。这种情况在网络环境下是非常有必要的,尤其是Client/Server模式的通信中,需要服务器随机解决由许多客户所提请的任务。这样,需要程序员能够编写出解决多客户并发事件的程序。 编写基于线程的网络通信程序,既可以使用Windows提供的Win32应用程序接口函数 (API),也可以使用各种编程语言所提供的线程对象。而使用Delphi 6等编程工具所提供Socket构件内涵有线程管理机制,可使编写多线程的网络通信程序变得简单、高效。Borland中Indy的TIdTCPServer对象提供了许多特性和方法(成员函数),你只要根据工作需要对这些函数或方法进行重写,即可在网络通信程序中实现多线程机制。 7.1.1 Borland的Indy技术 Indy(Internet Direct)是一种资源开放式的包含internet通用协议的internet构件组合。包括客户/服务器的执行、全部源代码以及帮助理解的实例。Indy是一种资源开放式的为Borland Delphi、C++ Builder、Kylix等系列产品使用的internet开发库,全部基于阻塞式(blocking)套接字。Indy客户构件特别容易使用,因为你仅需要依次写你所要传送的事务即可。Indy服务器是为多线程设计的。开放源代码的Internet组件集——Internet Direct(Indy)如图7-1,分为3个页面Indy Client、Indy Server、Indy Misc。Indy构件的名称前缀Id来区别于其它构件。 Internet Direct(Indy)是一组开放源代码的Internet组件,涵盖了几乎所有流行的Internet协议。Indy用Delphi编写,被包含在Delphi 6,Kylix 1和C++ Builder 6及以上各个版本的Borland开发环境中。Indy曾经叫做WinShoes(双关于WinSock——Windows的Socket库),是由Chad Z. Hower领导的一群开发者构建的,可以从Indy的站点/indy或 /group/Indy-Demos/上找到更多的信息并下载其新版本。 Delphi 7中所带的是Indy 9,比Delphi 6具备更多的Indy构件。在其的组件面板上,一共安装有100多个Indy组件。使用这些组件你可以开发基于各种协议的TCP客户和服务器应用程序,并处理相关的编码和安全问题。 7.1.2 再论Blocking与nonBlocking Delphi 6中带有两套TCP Socket组件:Indy Socket组件(IdTCPClient和IdTCPServer)和Delphi原生的TCP Socket组件(ClientSocket和ServerSocket)。事实上,本书的作者认为ClientSocket和ServerSocket很好用,因为本书的第4章主要讲的是ClientSocket和ServerSocket。但是,Borland已宣称ClientSocket和ServerSocket组件即将被废弃,建议用相应的Indy组件来代替。因此本章讲述IdTCPClient和IdTCPServer,并在后面使用简单的实例演示用IdTCPClient和IdTCPServer设计多客户并发的聊天程序。 (1)Indy是阻塞式(Blocking)的 (2)阻塞式Socket重新被认识 (3)阻塞式Socket的优点 (4)阻塞式Socket的缺点 7.1.3 解决Socket的Blocking方式通信的方法 (1)使用TIdAntiFreeze对抗“凝固” 在Delphi 6以后的Indy中有一个特殊的组件TIdAntiFreeze来透明地解决客户界面“凝固”的问题。TIdAntiFreeze在Indy内部定时中断对栈的调用,并在中
您可能关注的文档
最近下载
- 北师大版八年级数学上册 1.1 探索勾股定理 同步测试(附答案解析).docx VIP
- 冀少版七年级上册生物全册新质教学课件(配2024年秋改版教材).pptx
- 卫生间改造施工组织设计.pdf VIP
- 《结构吊装施工》.pdf VIP
- 2025年中考数学押题:几何图形选填压轴题(含答案).pdf VIP
- 小学英语群文阅读:No Pain, No Gain 教学设计 PPT课件.pptx VIP
- 氢气管线吹扫试压方案.docx VIP
- 正余弦函数的图像和性质导学案.doc VIP
- 2021新教材必修第一册完美题型精讲(同步学习培优120个题型完美讲解).pdf VIP
- 美术五年级上册人美版 第2课 画人像(课件)(14ppt).pptx VIP
文档评论(0)