Delphi程序的設(shè)計(jì)基礎(chǔ)教程第11章-網(wǎng)絡(luò)編程基礎(chǔ)_第1頁
Delphi程序的設(shè)計(jì)基礎(chǔ)教程第11章-網(wǎng)絡(luò)編程基礎(chǔ)_第2頁
Delphi程序的設(shè)計(jì)基礎(chǔ)教程第11章-網(wǎng)絡(luò)編程基礎(chǔ)_第3頁
Delphi程序的設(shè)計(jì)基礎(chǔ)教程第11章-網(wǎng)絡(luò)編程基礎(chǔ)_第4頁
Delphi程序的設(shè)計(jì)基礎(chǔ)教程第11章-網(wǎng)絡(luò)編程基礎(chǔ)_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

DELPHI程序設(shè)計(jì)基礎(chǔ)教程 第十一章網(wǎng)絡(luò)編程基礎(chǔ)DELPHI程序設(shè)計(jì)基礎(chǔ)教程 第十一章網(wǎng)絡(luò)編程基礎(chǔ)第十一章網(wǎng)絡(luò)編程基礎(chǔ)本章學(xué)習(xí)導(dǎo)讀11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)11.2建立Web瀏覽器11.3設(shè)計(jì)Web服務(wù)器11.4電子郵件系統(tǒng)的開發(fā)本章小結(jié)第十一章網(wǎng)絡(luò)編程基礎(chǔ)本章學(xué)習(xí)導(dǎo)讀225十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程本章學(xué)習(xí)導(dǎo)讀計(jì)算機(jī)網(wǎng)絡(luò)目前已經(jīng)深入到人們生活中的各個(gè)角落,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)也成了當(dāng)前計(jì)算機(jī)技術(shù)發(fā)展的熱點(diǎn)之一。那么,什么是網(wǎng)絡(luò)編程呢?W.Richard.Stevens在他所著的《UNIX網(wǎng)絡(luò)編程》中是這樣解釋的:網(wǎng)絡(luò)編程,即是編寫通過計(jì)算機(jī)網(wǎng)絡(luò)與其他程序進(jìn)行通信的這類程序。作為流行的編程工具,Delphi的網(wǎng)絡(luò)編程功能非常強(qiáng)大。在本章將首先介紹網(wǎng)絡(luò)的基本知識(shí),特別是網(wǎng)絡(luò)的客戶機(jī)/服務(wù)器模式以及網(wǎng)絡(luò)協(xié)議;然后通過實(shí)例介紹Web瀏覽器、Web服務(wù)器以及電子郵件系統(tǒng)的原理和開發(fā)。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程本章學(xué)習(xí)導(dǎo)讀325十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程計(jì)算機(jī)網(wǎng)絡(luò)目前已經(jīng)深入到人們生活中的各個(gè)角落,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)也成了當(dāng)前計(jì)算機(jī)技術(shù)發(fā)展的熱點(diǎn)之一。那么,什么是網(wǎng)絡(luò)編程呢?

W.Richard.Stevens在他所著的《UNIX網(wǎng)絡(luò)編程》中是這樣解釋的:網(wǎng)絡(luò)編程,即是編寫通過計(jì)算機(jī)網(wǎng)絡(luò)與其他程序進(jìn)行通信的這類程序。作為流行的編程工具,Delphi的網(wǎng)絡(luò)編程功能非常強(qiáng)大。在本章將首先介紹網(wǎng)絡(luò)的基本知識(shí),特別是網(wǎng)絡(luò)的客戶機(jī)/服務(wù)器模式以及網(wǎng)絡(luò)協(xié)議;然后通過實(shí)例介紹Web瀏覽器、Web服務(wù)器以及電子郵件系統(tǒng)的原理和開發(fā)。11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程計(jì)算425十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)1.客戶/服務(wù)器模式計(jì)算機(jī)網(wǎng)絡(luò),顧名思義就是由多臺(tái)計(jì)算機(jī)(或其它計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備)通過傳輸介質(zhì)和軟件物理(或邏輯)連接在一起組成的網(wǎng)絡(luò)。在這個(gè)網(wǎng)絡(luò)里,計(jì)算機(jī)與計(jì)算機(jī)之間可以完成資源共享、數(shù)據(jù)傳輸?shù)热蝿?wù)。而在這個(gè)過程當(dāng)中,存在著這樣兩種情況:一種是請(qǐng)求服務(wù),另一種則是提供服務(wù)的,這種主從關(guān)系被稱為客戶/服務(wù)器模型(即Client/Server模型,常簡(jiǎn)寫為C/S模型)。客戶端可以通過網(wǎng)絡(luò)向服務(wù)器端發(fā)出服務(wù)請(qǐng)求,當(dāng)服務(wù)器端接收到請(qǐng)求后做出響應(yīng),然后再通過網(wǎng)絡(luò)將響應(yīng)傳回到客戶端,如圖11-1所示。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)525十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)圖11-1客戶/服務(wù)器模型

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)625十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)2.計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)最常見的兩種模型,一個(gè)是ISO-OSI體系結(jié)構(gòu)的七層模型,一個(gè)是TCP/IP協(xié)議體系結(jié)構(gòu)的四層模型。

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)725十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程圖11-2ISO/OSI參考模型11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程圖11-2825十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程圖

11-3ISO-OSI與TCP/IP參考模型11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程圖11-3925十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器WWW是一種典型的客戶機(jī)/服務(wù)器方式,它一般采用Web瀏覽器作為WWW客戶程序。而儲(chǔ)存網(wǎng)頁的計(jì)算機(jī)運(yùn)行服務(wù)器程序,這個(gè)運(yùn)行服務(wù)器程序的計(jì)算機(jī)常常被稱為Web服務(wù)器。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.21025十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器瀏覽器的工作原理WWW的工作基于客戶機(jī)/服務(wù)器計(jì)算模型的,Web瀏覽器向Web服務(wù)器發(fā)出請(qǐng)求,而Web服務(wù)器接收到請(qǐng)求后向Web瀏覽器發(fā)回其所請(qǐng)求的WWW文檔,這個(gè)WWW文檔通常被稱為頁面(page)。在這個(gè)過程當(dāng)中,必須要解決這樣幾個(gè)問題:(1)怎樣標(biāo)識(shí)出分布在整個(gè)因特網(wǎng)上的WWW文檔?(2)萬維網(wǎng)上的各種超鏈接是通過什么協(xié)議來實(shí)現(xiàn)的?(3)怎樣使用戶可以方便地在萬維網(wǎng)上找到自己所需要的信息?(4)怎樣使不同作者創(chuàng)作的不同風(fēng)格的WWW文檔都能在因特網(wǎng)上的各種計(jì)算機(jī)上顯示出來,同時(shí)使用戶清楚地知道在什么地方存在著超鏈接?18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.21125十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器萬維網(wǎng)使用統(tǒng)一資源定位符URL(UniformResourceLocator)來標(biāo)識(shí)萬維網(wǎng)上的各種文檔,并且每個(gè)文檔在整個(gè)因特網(wǎng)的范圍內(nèi),標(biāo)識(shí)符URL是惟一的,這樣解決了第一個(gè)問題。為了解決第二個(gè)問題,萬維網(wǎng)客戶程序和萬維網(wǎng)服務(wù)器程序之間的交互要遵循嚴(yán)格的協(xié)議,這個(gè)協(xié)議就是超文本傳送協(xié)議HTTP(HypertextTransferProtocol)。HTTP是一個(gè)應(yīng)用層協(xié)議,它使用TCP連接進(jìn)行可靠的傳送。為了使用戶可以方便地在萬維網(wǎng)上找到自己所需要的信息,用戶可使用各種搜索工具。第四個(gè)問題的解決,萬維網(wǎng)使用了超文本標(biāo)記語言HTML(HypertextMarkupLanguage),這樣只要使用了HTML語言編寫的WWW文檔都可以在因特網(wǎng)上的計(jì)算機(jī)上顯示出來,WWW文檔的設(shè)計(jì)者也可以很方便地用超鏈接從一個(gè)WWW文檔連接到因特網(wǎng)上的其它WWW頁面上了。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.21225十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器統(tǒng)一資源定位符URL統(tǒng)一資源定位符URL是用于完整地描述Internet上網(wǎng)頁和其他資源的地址的一種標(biāo)識(shí)方法。Internet上的每一個(gè)網(wǎng)頁都具有一個(gè)唯一的名稱標(biāo)識(shí),通常稱之為URL地址,簡(jiǎn)單地說,URL就是Web地址,俗稱“網(wǎng)址”。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.21325十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程超文本傳送協(xié)議HTTP

HTTP協(xié)議(HypertextTransferProtocol,超文本傳輸協(xié)議)是應(yīng)用層的一個(gè)協(xié)議,用于從WWW服務(wù)器傳輸超文本到本地瀏覽器。winsock通信機(jī)制根據(jù)傳輸數(shù)據(jù)類型的不同,常用的Socket類型有兩種:流式Socket(STREAMSOCKET)和數(shù)據(jù)報(bào)式Socket(DATAGRAMSOCK)。流式是一種面向連接的Socket,針對(duì)于面向連接的TCP服務(wù)應(yīng)用;數(shù)據(jù)報(bào)式Socket是一種無連接的Socket,對(duì)應(yīng)于無連接的UDP服務(wù)應(yīng)用。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程超文本傳送協(xié)1425十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器瀏覽器的設(shè)計(jì)Delphi具有強(qiáng)大的網(wǎng)絡(luò)編程功能,在進(jìn)行設(shè)計(jì)之前,先介紹一下Delphi提供的用于設(shè)計(jì)Web瀏覽器的組件-TWebBrowser組件。TWebBrowser組件位于Internet組件頁中,使用該組件開發(fā)的應(yīng)用程序可以瀏覽網(wǎng)頁、查看文檔、數(shù)據(jù)下載等功能。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.21525十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器Web程序的基本結(jié)構(gòu)仍然是客戶/服務(wù)器模型。客戶端為Web瀏覽器,在上一節(jié)我們已經(jīng)介紹過了。服務(wù)器端為Web服務(wù)器,在這一節(jié)里我們將介紹Web服務(wù)器的工作原理以及在應(yīng)用層有哪些應(yīng)用,dephi給我們提供了哪些組件來實(shí)現(xiàn)這些應(yīng)用。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.31625十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器Web服務(wù)器工作原理當(dāng)客戶需要服務(wù)器提供服務(wù)時(shí),會(huì)通過網(wǎng)絡(luò)向服務(wù)器發(fā)出一個(gè)連接請(qǐng)求,而此時(shí)Web服務(wù)器在網(wǎng)絡(luò)中處于偵聽狀態(tài),當(dāng)這個(gè)請(qǐng)求通過網(wǎng)絡(luò)被Web服務(wù)器得到以后,Web瀏覽器與Web服務(wù)器建立起連接。Web瀏覽器再向Web服務(wù)器提出服務(wù)請(qǐng)求,Web服務(wù)器根據(jù)請(qǐng)求做出響應(yīng),響應(yīng)的結(jié)果再從網(wǎng)絡(luò)傳輸給Web瀏覽器。當(dāng)通話結(jié)束后,Web服務(wù)器斷開與Web瀏覽器的連接。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.31725十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器在上一節(jié)已經(jīng)介紹了Winsock通信機(jī)制,并且講到了根據(jù)傳輸數(shù)據(jù)類型的不同,常用的Socket類型有兩種:一種是面向連接的流式Socket,另一種是無連接的數(shù)據(jù)報(bào)式Socket。

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.31825十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器從圖11-13我們可以看出,對(duì)于面向連接的通信,服務(wù)器端首先創(chuàng)建Socket,然后將其與本地的IP地址和通信端口綁定(Bind),并對(duì)綁定的端口進(jìn)行監(jiān)聽(Listen),一旦服務(wù)器監(jiān)聽到客戶端的通信請(qǐng)求(Connect)后,返回一個(gè)新的套接字與用戶連接,而原有的套接字繼續(xù)放在網(wǎng)絡(luò)中處于監(jiān)聽狀態(tài),以接受其他用戶的連接請(qǐng)求。然后讀出(Accept)客戶端的發(fā)送信息,完成相應(yīng)處理(Recv/Send)后再寫入處理結(jié)果??蛻舳诵枰ㄐ艜r(shí),創(chuàng)建本地Socket并完成與服務(wù)器端的連接(Connect),即可寫入(Send)或讀出(Recv)通信數(shù)據(jù)。但客戶端完成通信后關(guān)閉套接字(Socket),并通知服務(wù)器,然后關(guān)閉連接,結(jié)束此次通信。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.31925十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器從圖11-14中可以看出,采用無連接的套接字進(jìn)行通信,由于在數(shù)據(jù)報(bào)中已包含對(duì)端地址,無連接通信的雙方在創(chuàng)建了本地Socket并與IP地址和通信端口綁定(Bind)后,即可接收(Recv)或發(fā)送(Send)數(shù)據(jù)。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.32025十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器應(yīng)用層協(xié)議控件及應(yīng)用應(yīng)用層是TCP/IP協(xié)議模型中的最高層,它直接面對(duì)用戶的具體應(yīng)用。TCP/IP協(xié)議模型在這一層有著很多協(xié)議來支持不同的應(yīng)用,許多大家所熟悉的Internet的應(yīng)用的實(shí)現(xiàn)都離不開這些協(xié)議。如我們進(jìn)行萬維網(wǎng)(WWW)訪問用到了超文本傳送協(xié)議(hypertexttransferprotocol,HTTP)、文件傳輸用到了文件傳送協(xié)議(filetransferprotocol,F(xiàn)TP)、電子郵件發(fā)送用到了簡(jiǎn)單郵件傳送協(xié)議(simplemailtransferprotocol,SMTP)、域名的解析用到了域名系統(tǒng)(domainnamesystem,DNS);、遠(yuǎn)程登錄用到了遠(yuǎn)程登錄協(xié)議(Telnet),都是屬于TCP/IP應(yīng)用層的。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.32125十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器HTTP協(xié)議在11.2.1節(jié)中已經(jīng)介紹過HTTP協(xié)議,在Delphi7的Indy組件集當(dāng)中,TIdHTTP組件和TIdHTTPServer組件實(shí)現(xiàn)超文本傳輸協(xié)議。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.32225十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器Telnet協(xié)議Telnet是一個(gè)簡(jiǎn)單的遠(yuǎn)程終端協(xié)議,使用的是客戶/服務(wù)器方式。用戶在用Telnet可以登錄到遠(yuǎn)端的另外一個(gè)主機(jī)上。使用Telnet協(xié)議進(jìn)行遠(yuǎn)程登陸時(shí)需要滿足以下條件:在本的計(jì)算機(jī)上必須裝有包含Telnet協(xié)議的客戶程序;必須知道遠(yuǎn)程主機(jī)的IP地址或域名;必須知道登錄標(biāo)識(shí)與口令。Telnet以前應(yīng)用得很多,現(xiàn)在有由于PC機(jī)的功能越來越強(qiáng),用戶已較少使用了。但作為應(yīng)用層的一個(gè)主要協(xié)議,Delphi還是對(duì)Telnet協(xié)議提供了很好的支持。在Delphi中使用TIdTelnet組件和TIdTelnetServer組件實(shí)現(xiàn)Telnet。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.32325十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器FTP協(xié)議與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP是一個(gè)基于客戶/服務(wù)器模型的應(yīng)用層協(xié)議。用戶通過一個(gè)支持FTP協(xié)議的客戶機(jī)程序,連接到在遠(yuǎn)程主機(jī)上的FTP服務(wù)器程序。用戶通過客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機(jī)。

TIdFTP和TIdFTPServer是Indy9中專門支持FTP協(xié)議的組件。使用這兩個(gè)組件既可以開發(fā)FTP客戶端程序,又可以開發(fā)出功能完善的FTP服務(wù)器軟件。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.32425十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.4電子郵件系統(tǒng)的開發(fā)電子郵件是當(dāng)前網(wǎng)絡(luò)當(dāng)中的一個(gè)重要應(yīng)用。用戶在發(fā)送電子郵件的時(shí)候,電子郵件首先被發(fā)送到ISP(InternetServiceProvider,互聯(lián)網(wǎng)服務(wù)提供商)的郵件服務(wù)器,并被放在收信人郵箱中,收信人上網(wǎng)后,可到ISP的郵件服務(wù)器進(jìn)行讀取。從這可以看出,電子郵件系統(tǒng)應(yīng)包括電子郵件收發(fā)程序、郵件服務(wù)器以及電子郵件使用的協(xié)議。在應(yīng)用層,SMTP協(xié)議是用來解決電子郵件發(fā)送的問題的,POP3(PostOfficeProtocol3,郵局協(xié)議的第3個(gè)版本)和IMAP(InternetMessageAccessProtocol,因特網(wǎng)報(bào)文存取協(xié)議)是用來解決電子郵件接收的問題的。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.42525十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.4電子郵件系統(tǒng)的開發(fā)TIdSMTPDelphi7提供了一些組件,封裝了SMTP協(xié)議,用來開發(fā)SMTP客戶端程序。主要的組件有TIdSMTP、TIdMessage和TIdAttachment。利用這些組件可以快速地開發(fā)一個(gè)電子郵件的發(fā)送軟件。TIdPOP3TIdPOP3組件用于實(shí)現(xiàn)POP3協(xié)議的客戶端部分,從郵件服務(wù)器獲得E-Mail信息并將其返回到用戶計(jì)算機(jī)上。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.42625十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程在本章里主要介紹了網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí),包括網(wǎng)絡(luò)的基礎(chǔ)知識(shí),以及如何使用Delphi進(jìn)行網(wǎng)絡(luò)開發(fā)。包括網(wǎng)絡(luò)的客戶/服務(wù)器模式,以及計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)。網(wǎng)絡(luò)中的兩個(gè)終端,要想實(shí)現(xiàn)通信,必須遵循相同的規(guī)則,這個(gè)規(guī)則我們把它叫做協(xié)議。從硬件到軟件,協(xié)議是非常多的,為了將復(fù)雜的網(wǎng)絡(luò)問題簡(jiǎn)單化,計(jì)算機(jī)網(wǎng)絡(luò)采用了分層的方法,將復(fù)雜繁多的網(wǎng)絡(luò)協(xié)議按一定的分層標(biāo)準(zhǔn)分成若干層。目前最常見的兩種模型,一個(gè)是ISO-OSI體系結(jié)構(gòu)的七層模型,一個(gè)是TCP/IP協(xié)議體系結(jié)構(gòu)的四層模型。而TCP/IP協(xié)議模型是目前事實(shí)上的標(biāo)準(zhǔn)。本章小結(jié)

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程2725十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程WWW是網(wǎng)絡(luò)中的一個(gè)重要應(yīng)用,在本章里,介紹了Web瀏覽器的工作原理,其中介紹到了HTTP協(xié)議以及Winsock通信機(jī)制。并介紹了如何利用Delphi提供的TWebBrowser組件設(shè)計(jì)一個(gè)Web瀏覽器。WWW是一個(gè)客戶/服務(wù)器模式的應(yīng)用,所以接下來介紹了Web服務(wù)器的工作原理。應(yīng)用層是網(wǎng)絡(luò)協(xié)議中的最高層,直接面向用戶的應(yīng)用,在本章介紹了應(yīng)用層的常用協(xié)議,包括介紹了Delphi用來實(shí)現(xiàn)這些協(xié)議所用到的組件。本章小結(jié)

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程WW2825十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程在最后介紹了應(yīng)用層的兩個(gè)比較重要的協(xié)議SMTP協(xié)議和POP3協(xié)議。這兩個(gè)協(xié)議是用來實(shí)現(xiàn)電子郵件系統(tǒng)的。在本章介紹了Delphi中用來實(shí)現(xiàn)這兩個(gè)協(xié)議的組件TIdSMTP組件和TIdPOP3組件。本章小結(jié)

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程在最29DELPHI程序設(shè)計(jì)基礎(chǔ)教程 第十一章網(wǎng)絡(luò)編程基礎(chǔ)DELPHI程序設(shè)計(jì)基礎(chǔ)教程 第十一章網(wǎng)絡(luò)編程基礎(chǔ)第十一章網(wǎng)絡(luò)編程基礎(chǔ)本章學(xué)習(xí)導(dǎo)讀11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)11.2建立Web瀏覽器11.3設(shè)計(jì)Web服務(wù)器11.4電子郵件系統(tǒng)的開發(fā)本章小結(jié)第十一章網(wǎng)絡(luò)編程基礎(chǔ)本章學(xué)習(xí)導(dǎo)讀3125十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程本章學(xué)習(xí)導(dǎo)讀計(jì)算機(jī)網(wǎng)絡(luò)目前已經(jīng)深入到人們生活中的各個(gè)角落,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)也成了當(dāng)前計(jì)算機(jī)技術(shù)發(fā)展的熱點(diǎn)之一。那么,什么是網(wǎng)絡(luò)編程呢?W.Richard.Stevens在他所著的《UNIX網(wǎng)絡(luò)編程》中是這樣解釋的:網(wǎng)絡(luò)編程,即是編寫通過計(jì)算機(jī)網(wǎng)絡(luò)與其他程序進(jìn)行通信的這類程序。作為流行的編程工具,Delphi的網(wǎng)絡(luò)編程功能非常強(qiáng)大。在本章將首先介紹網(wǎng)絡(luò)的基本知識(shí),特別是網(wǎng)絡(luò)的客戶機(jī)/服務(wù)器模式以及網(wǎng)絡(luò)協(xié)議;然后通過實(shí)例介紹Web瀏覽器、Web服務(wù)器以及電子郵件系統(tǒng)的原理和開發(fā)。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程本章學(xué)習(xí)導(dǎo)讀3225十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程計(jì)算機(jī)網(wǎng)絡(luò)目前已經(jīng)深入到人們生活中的各個(gè)角落,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)也成了當(dāng)前計(jì)算機(jī)技術(shù)發(fā)展的熱點(diǎn)之一。那么,什么是網(wǎng)絡(luò)編程呢?

W.Richard.Stevens在他所著的《UNIX網(wǎng)絡(luò)編程》中是這樣解釋的:網(wǎng)絡(luò)編程,即是編寫通過計(jì)算機(jī)網(wǎng)絡(luò)與其他程序進(jìn)行通信的這類程序。作為流行的編程工具,Delphi的網(wǎng)絡(luò)編程功能非常強(qiáng)大。在本章將首先介紹網(wǎng)絡(luò)的基本知識(shí),特別是網(wǎng)絡(luò)的客戶機(jī)/服務(wù)器模式以及網(wǎng)絡(luò)協(xié)議;然后通過實(shí)例介紹Web瀏覽器、Web服務(wù)器以及電子郵件系統(tǒng)的原理和開發(fā)。11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程計(jì)算3325十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)1.客戶/服務(wù)器模式計(jì)算機(jī)網(wǎng)絡(luò),顧名思義就是由多臺(tái)計(jì)算機(jī)(或其它計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備)通過傳輸介質(zhì)和軟件物理(或邏輯)連接在一起組成的網(wǎng)絡(luò)。在這個(gè)網(wǎng)絡(luò)里,計(jì)算機(jī)與計(jì)算機(jī)之間可以完成資源共享、數(shù)據(jù)傳輸?shù)热蝿?wù)。而在這個(gè)過程當(dāng)中,存在著這樣兩種情況:一種是請(qǐng)求服務(wù),另一種則是提供服務(wù)的,這種主從關(guān)系被稱為客戶/服務(wù)器模型(即Client/Server模型,常簡(jiǎn)寫為C/S模型)。客戶端可以通過網(wǎng)絡(luò)向服務(wù)器端發(fā)出服務(wù)請(qǐng)求,當(dāng)服務(wù)器端接收到請(qǐng)求后做出響應(yīng),然后再通過網(wǎng)絡(luò)將響應(yīng)傳回到客戶端,如圖11-1所示。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)3425十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)圖11-1客戶/服務(wù)器模型

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)3525十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)2.計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)最常見的兩種模型,一個(gè)是ISO-OSI體系結(jié)構(gòu)的七層模型,一個(gè)是TCP/IP協(xié)議體系結(jié)構(gòu)的四層模型。

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.1網(wǎng)3625十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程圖11-2ISO/OSI參考模型11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程圖11-23725十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程圖

11-3ISO-OSI與TCP/IP參考模型11.1網(wǎng)絡(luò)基礎(chǔ)知識(shí)18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程圖11-33825十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器WWW是一種典型的客戶機(jī)/服務(wù)器方式,它一般采用Web瀏覽器作為WWW客戶程序。而儲(chǔ)存網(wǎng)頁的計(jì)算機(jī)運(yùn)行服務(wù)器程序,這個(gè)運(yùn)行服務(wù)器程序的計(jì)算機(jī)常常被稱為Web服務(wù)器。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.23925十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器瀏覽器的工作原理WWW的工作基于客戶機(jī)/服務(wù)器計(jì)算模型的,Web瀏覽器向Web服務(wù)器發(fā)出請(qǐng)求,而Web服務(wù)器接收到請(qǐng)求后向Web瀏覽器發(fā)回其所請(qǐng)求的WWW文檔,這個(gè)WWW文檔通常被稱為頁面(page)。在這個(gè)過程當(dāng)中,必須要解決這樣幾個(gè)問題:(1)怎樣標(biāo)識(shí)出分布在整個(gè)因特網(wǎng)上的WWW文檔?(2)萬維網(wǎng)上的各種超鏈接是通過什么協(xié)議來實(shí)現(xiàn)的?(3)怎樣使用戶可以方便地在萬維網(wǎng)上找到自己所需要的信息?(4)怎樣使不同作者創(chuàng)作的不同風(fēng)格的WWW文檔都能在因特網(wǎng)上的各種計(jì)算機(jī)上顯示出來,同時(shí)使用戶清楚地知道在什么地方存在著超鏈接?18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.24025十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器萬維網(wǎng)使用統(tǒng)一資源定位符URL(UniformResourceLocator)來標(biāo)識(shí)萬維網(wǎng)上的各種文檔,并且每個(gè)文檔在整個(gè)因特網(wǎng)的范圍內(nèi),標(biāo)識(shí)符URL是惟一的,這樣解決了第一個(gè)問題。為了解決第二個(gè)問題,萬維網(wǎng)客戶程序和萬維網(wǎng)服務(wù)器程序之間的交互要遵循嚴(yán)格的協(xié)議,這個(gè)協(xié)議就是超文本傳送協(xié)議HTTP(HypertextTransferProtocol)。HTTP是一個(gè)應(yīng)用層協(xié)議,它使用TCP連接進(jìn)行可靠的傳送。為了使用戶可以方便地在萬維網(wǎng)上找到自己所需要的信息,用戶可使用各種搜索工具。第四個(gè)問題的解決,萬維網(wǎng)使用了超文本標(biāo)記語言HTML(HypertextMarkupLanguage),這樣只要使用了HTML語言編寫的WWW文檔都可以在因特網(wǎng)上的計(jì)算機(jī)上顯示出來,WWW文檔的設(shè)計(jì)者也可以很方便地用超鏈接從一個(gè)WWW文檔連接到因特網(wǎng)上的其它WWW頁面上了。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.24125十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器統(tǒng)一資源定位符URL統(tǒng)一資源定位符URL是用于完整地描述Internet上網(wǎng)頁和其他資源的地址的一種標(biāo)識(shí)方法。Internet上的每一個(gè)網(wǎng)頁都具有一個(gè)唯一的名稱標(biāo)識(shí),通常稱之為URL地址,簡(jiǎn)單地說,URL就是Web地址,俗稱“網(wǎng)址”。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.24225十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程超文本傳送協(xié)議HTTP

HTTP協(xié)議(HypertextTransferProtocol,超文本傳輸協(xié)議)是應(yīng)用層的一個(gè)協(xié)議,用于從WWW服務(wù)器傳輸超文本到本地瀏覽器。winsock通信機(jī)制根據(jù)傳輸數(shù)據(jù)類型的不同,常用的Socket類型有兩種:流式Socket(STREAMSOCKET)和數(shù)據(jù)報(bào)式Socket(DATAGRAMSOCK)。流式是一種面向連接的Socket,針對(duì)于面向連接的TCP服務(wù)應(yīng)用;數(shù)據(jù)報(bào)式Socket是一種無連接的Socket,對(duì)應(yīng)于無連接的UDP服務(wù)應(yīng)用。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程超文本傳送協(xié)4325十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.2建立Web瀏覽器瀏覽器的設(shè)計(jì)Delphi具有強(qiáng)大的網(wǎng)絡(luò)編程功能,在進(jìn)行設(shè)計(jì)之前,先介紹一下Delphi提供的用于設(shè)計(jì)Web瀏覽器的組件-TWebBrowser組件。TWebBrowser組件位于Internet組件頁中,使用該組件開發(fā)的應(yīng)用程序可以瀏覽網(wǎng)頁、查看文檔、數(shù)據(jù)下載等功能。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.24425十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器Web程序的基本結(jié)構(gòu)仍然是客戶/服務(wù)器模型??蛻舳藶閃eb瀏覽器,在上一節(jié)我們已經(jīng)介紹過了。服務(wù)器端為Web服務(wù)器,在這一節(jié)里我們將介紹Web服務(wù)器的工作原理以及在應(yīng)用層有哪些應(yīng)用,dephi給我們提供了哪些組件來實(shí)現(xiàn)這些應(yīng)用。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.34525十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器Web服務(wù)器工作原理當(dāng)客戶需要服務(wù)器提供服務(wù)時(shí),會(huì)通過網(wǎng)絡(luò)向服務(wù)器發(fā)出一個(gè)連接請(qǐng)求,而此時(shí)Web服務(wù)器在網(wǎng)絡(luò)中處于偵聽狀態(tài),當(dāng)這個(gè)請(qǐng)求通過網(wǎng)絡(luò)被Web服務(wù)器得到以后,Web瀏覽器與Web服務(wù)器建立起連接。Web瀏覽器再向Web服務(wù)器提出服務(wù)請(qǐng)求,Web服務(wù)器根據(jù)請(qǐng)求做出響應(yīng),響應(yīng)的結(jié)果再從網(wǎng)絡(luò)傳輸給Web瀏覽器。當(dāng)通話結(jié)束后,Web服務(wù)器斷開與Web瀏覽器的連接。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.34625十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器在上一節(jié)已經(jīng)介紹了Winsock通信機(jī)制,并且講到了根據(jù)傳輸數(shù)據(jù)類型的不同,常用的Socket類型有兩種:一種是面向連接的流式Socket,另一種是無連接的數(shù)據(jù)報(bào)式Socket。

18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.34725十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器從圖11-13我們可以看出,對(duì)于面向連接的通信,服務(wù)器端首先創(chuàng)建Socket,然后將其與本地的IP地址和通信端口綁定(Bind),并對(duì)綁定的端口進(jìn)行監(jiān)聽(Listen),一旦服務(wù)器監(jiān)聽到客戶端的通信請(qǐng)求(Connect)后,返回一個(gè)新的套接字與用戶連接,而原有的套接字繼續(xù)放在網(wǎng)絡(luò)中處于監(jiān)聽狀態(tài),以接受其他用戶的連接請(qǐng)求。然后讀出(Accept)客戶端的發(fā)送信息,完成相應(yīng)處理(Recv/Send)后再寫入處理結(jié)果。客戶端需要通信時(shí),創(chuàng)建本地Socket并完成與服務(wù)器端的連接(Connect),即可寫入(Send)或讀出(Recv)通信數(shù)據(jù)。但客戶端完成通信后關(guān)閉套接字(Socket),并通知服務(wù)器,然后關(guān)閉連接,結(jié)束此次通信。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.34825十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器從圖11-14中可以看出,采用無連接的套接字進(jìn)行通信,由于在數(shù)據(jù)報(bào)中已包含對(duì)端地址,無連接通信的雙方在創(chuàng)建了本地Socket并與IP地址和通信端口綁定(Bind)后,即可接收(Recv)或發(fā)送(Send)數(shù)據(jù)。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.34925十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器應(yīng)用層協(xié)議控件及應(yīng)用應(yīng)用層是TCP/IP協(xié)議模型中的最高層,它直接面對(duì)用戶的具體應(yīng)用。TCP/IP協(xié)議模型在這一層有著很多協(xié)議來支持不同的應(yīng)用,許多大家所熟悉的Internet的應(yīng)用的實(shí)現(xiàn)都離不開這些協(xié)議。如我們進(jìn)行萬維網(wǎng)(WWW)訪問用到了超文本傳送協(xié)議(hypertexttransferprotocol,HTTP)、文件傳輸用到了文件傳送協(xié)議(filetransferprotocol,F(xiàn)TP)、電子郵件發(fā)送用到了簡(jiǎn)單郵件傳送協(xié)議(simplemailtransferprotocol,SMTP)、域名的解析用到了域名系統(tǒng)(domainnamesystem,DNS);、遠(yuǎn)程登錄用到了遠(yuǎn)程登錄協(xié)議(Telnet),都是屬于TCP/IP應(yīng)用層的。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.35025十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器HTTP協(xié)議在11.2.1節(jié)中已經(jīng)介紹過HTTP協(xié)議,在Delphi7的Indy組件集當(dāng)中,TIdHTTP組件和TIdHTTPServer組件實(shí)現(xiàn)超文本傳輸協(xié)議。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.35125十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器Telnet協(xié)議Telnet是一個(gè)簡(jiǎn)單的遠(yuǎn)程終端協(xié)議,使用的是客戶/服務(wù)器方式。用戶在用Telnet可以登錄到遠(yuǎn)端的另外一個(gè)主機(jī)上。使用Telnet協(xié)議進(jìn)行遠(yuǎn)程登陸時(shí)需要滿足以下條件:在本的計(jì)算機(jī)上必須裝有包含Telnet協(xié)議的客戶程序;必須知道遠(yuǎn)程主機(jī)的IP地址或域名;必須知道登錄標(biāo)識(shí)與口令。Telnet以前應(yīng)用得很多,現(xiàn)在有由于PC機(jī)的功能越來越強(qiáng),用戶已較少使用了。但作為應(yīng)用層的一個(gè)主要協(xié)議,Delphi還是對(duì)Telnet協(xié)議提供了很好的支持。在Delphi中使用TIdTelnet組件和TIdTelnetServer組件實(shí)現(xiàn)Telnet。18十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.35225十月2022DELPHI程序設(shè)計(jì)基礎(chǔ)教程11.3設(shè)計(jì)Web服務(wù)器FTP協(xié)議與大多數(shù)Internet服務(wù)一樣,F(xiàn)TP是一個(gè)基于客戶/服務(wù)器模型的應(yīng)用層協(xié)議。用戶通過一個(gè)支持FTP協(xié)議的客戶機(jī)程序,連接到在遠(yuǎn)程主機(jī)上的FTP服務(wù)器程序。用戶通過客戶機(jī)程序向服務(wù)器程序發(fā)出命令,服務(wù)器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結(jié)果返回到客戶機(jī)。

TIdFTP和TIdFTPServer是Indy9中專門支持FTP協(xié)議的組件。使用這兩個(gè)組件既可以開發(fā)FTP客戶端程序,又可以開發(fā)出功能完善的FTP服務(wù)器軟件。18十月2022DELPHI程序設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論