- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CH24 使用Indy元件设计网路程式.ppt
第二十四章 使用Indy元件設計網路程式 在上一章我們提到了如何在BCB中開發一些基本的網路程式,在這一章我們要介紹的也是網路程式,不過在這邊我們是使用Indy相關的VCL元件來開發網路程式。在BCB中,Indy所提供的功能比FastNet提供的功能還要強大還要好用。 大綱 24-1. 什麼是Indy 24-2. Indy元件有哪些 24-3. HTTP抓網頁程式 24-4. 使用Indy開發的小程式 本章習題 24-1. 什麼是Indy 在BCB6還未上市之前,就有很多人認為BCB所提供的FastNet的VCL元件功能不夠強大,所提供的功能也不夠完整,還好那時候在網路上有些免費的VCL元件可以讓大家下載使用,在那個時候,Indy就是最常被使用的一套Free的VCL元件。 Indy提供了很多與網路相關的元件,也提供了一堆編碼解碼的元件,對一般的使用者來說,已經非常的足夠。 24-1. 什麼是Indy Indy ? Internet Direct Indy是一套完整的網路元件,他不只是免費的,還有OpenSource。 Indy他是利用Delphi開發的,使用blocking socket來當作底層的socket元件,也因為Indy是利用Delphi開發,所以現在不管是在Delphi 6、Kylix 1、以及C++ Builder 6以上的版本(包括)都可以看到Indy的身影。想對Indy有更深入的了解可以到Indy的網站上看看:/Indy/。 24-2. Indy元件有哪些 Indy元件在BCB中共分成三個頁次來放置。 Indy Clients、Indy Servers以及Indy Misc這三個分類。 有關Indy的詳細說明可以參考Help的內容! 24-3. HTTP抓網頁程式 這一小節我們將要實作一個HTTP抓網頁的軟體,類似的範例我們在介紹FastNet那邊就已經提過了,可是在這邊我們將利用Indy所提供的『TIdHTTP』來完成這個範例。 24-3. HTTP抓網頁程式 範例24-1:HTTP抓網頁程式的實作範例 範例說明 這個範例將和範例23-3幾乎一樣,主要是因為筆者想要呈現使用FastNet以及Indy的差別在那邊。所以在這個範例中,我們也是利用和範例23-3一樣的視窗外觀,一樣的操作方式來實作,唯一的不同就是我們不是使用TNMHTTP這個VCL元件來開發。 24-3. HTTP抓網頁程式 範例24-1:主要程式碼(main.cpp) 24-3. HTTP抓網頁程式 範例24-1:主要程式碼(main.cpp) 24-3. HTTP抓網頁程式 範例24-1:HTTP抓網頁程式的實作範例 執行結果 24-3. HTTP抓網頁程式 範例24-1:HTTP抓網頁程式的實作範例 抓取網頁資料時,使用『Get』這個Method會傳回網頁的資料,若是要抓取網頁的Header,則必須要執行『Head』這個Method後,再利用TIdHTTP的Response這個屬性下的一些屬性去抓取所需要的Header資料,也就是TIdHTTP會幫我們將Header先Parse好讓使用者方便去使用。 還有很多TIdHTTP的功能我們還沒有提到,例如SSL的功能以及Request屬性內的設定,都是TIdHTTP所可以提供的功能。 如果我們將SSL的功能啟動的話(將Intercept的值改成『SSL』),我們將可以使用https的連線方式與遠端溝通 在Request的屬性內,有Accept、AcceptCharSet、AcceptEncoding、AcceptLanguage、Content-type、ContentVersion、ProxyAuthenticate、ProxyPassword、ProxyServer、UserAgent、WWWAuthenticate等約29項不同的屬性值可以設定。 在一般HTTP Client的設定上,TIdHTTP也可以設定ASCII的Filter、ProtocolVersion、Send或是Recive的Buffer大小,甚至可以去設定Socks的一些資訊等等,這些都是TIdHTTP比TNMHTTP還要來的強大的原因。 24-4. 使用Indy開發的小程式 這一小節我們主要是採用多個範例來帶領各位進入Indy程式設計的殿堂,雖然這些範例都很簡單,有些甚至只需要短短的兩三行程式,但希望可以藉著簡單的程式碼,慢慢的學到基本功夫,接下來的真功夫就靠自己去學習了! 24-4. 使用Indy開發的小程式 範例24-2:DayTime Client 範例說明 在範例24-2中,我們實作一個DayTime Client,讓這個Application可以去跟遠端的DayTime Server連線,並且抓
文档评论(0)