




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第十一章網(wǎng)絡編程基礎本章學習導讀11.1網(wǎng)絡基礎知識11.2建立Web瀏覽器11.3設計Web服務器11.4電子郵件系統(tǒng)的開發(fā)本章小結12十二月2023DELPHI程序設計基礎教程本章學習導讀計算機網(wǎng)絡目前已經(jīng)深入到人們生活中的各個角落,計算機網(wǎng)絡技術也成了當前計算機技術發(fā)展的熱點之一。那么,什么是網(wǎng)絡編程呢?W.Richard.Stevens在他所著的《UNIX網(wǎng)絡編程》中是這樣解釋的:網(wǎng)絡編程,即是編寫通過計算機網(wǎng)絡與其他程序進行通信的這類程序。作為流行的編程工具,Delphi的網(wǎng)絡編程功能非常強大。在本章將首先介紹網(wǎng)絡的基本知識,特別是網(wǎng)絡的客戶機/服務器模式以及網(wǎng)絡協(xié)議;然后通過實例介紹Web瀏覽器、Web服務器以及電子郵件系統(tǒng)的原理和開發(fā)。12十二月2023DELPHI程序設計基礎教程計算機網(wǎng)絡目前已經(jīng)深入到人們生活中的各個角落,計算機網(wǎng)絡技術也成了當前計算機技術發(fā)展的熱點之一。那么,什么是網(wǎng)絡編程呢?
W.Richard.Stevens在他所著的《UNIX網(wǎng)絡編程》中是這樣解釋的:網(wǎng)絡編程,即是編寫通過計算機網(wǎng)絡與其他程序進行通信的這類程序。作為流行的編程工具,Delphi的網(wǎng)絡編程功能非常強大。在本章將首先介紹網(wǎng)絡的基本知識,特別是網(wǎng)絡的客戶機/服務器模式以及網(wǎng)絡協(xié)議;然后通過實例介紹Web瀏覽器、Web服務器以及電子郵件系統(tǒng)的原理和開發(fā)。11.1網(wǎng)絡基礎知識12十二月2023DELPHI程序設計基礎教程11.1網(wǎng)絡基礎知識1.客戶/服務器模式計算機網(wǎng)絡,顧名思義就是由多臺計算機(或其它計算機網(wǎng)絡設備)通過傳輸介質和軟件物理(或邏輯)連接在一起組成的網(wǎng)絡。在這個網(wǎng)絡里,計算機與計算機之間可以完成資源共享、數(shù)據(jù)傳輸?shù)热蝿?。而在這個過程當中,存在著這樣兩種情況:一種是請求服務,另一種則是提供服務的,這種主從關系被稱為客戶/服務器模型(即Client/Server模型,常簡寫為C/S模型)。客戶端可以通過網(wǎng)絡向服務器端發(fā)出服務請求,當服務器端接收到請求后做出響應,然后再通過網(wǎng)絡將響應傳回到客戶端,如圖11-1所示。12十二月2023DELPHI程序設計基礎教程11.1網(wǎng)絡基礎知識圖11-1客戶/服務器模型
12十二月2023DELPHI程序設計基礎教程11.1網(wǎng)絡基礎知識2.計算機網(wǎng)絡的體系結構最常見的兩種模型,一個是ISO-OSI體系結構的七層模型,一個是TCP/IP協(xié)議體系結構的四層模型。
12十二月2023DELPHI程序設計基礎教程圖11-2ISO/OSI參考模型11.1網(wǎng)絡基礎知識12十二月2023DELPHI程序設計基礎教程圖
11-3ISO-OSI與TCP/IP參考模型11.1網(wǎng)絡基礎知識12十二月2023DELPHI程序設計基礎教程11.2建立Web瀏覽器WWW是一種典型的客戶機/服務器方式,它一般采用Web瀏覽器作為WWW客戶程序。而儲存網(wǎng)頁的計算機運行服務器程序,這個運行服務器程序的計算機常常被稱為Web服務器。12十二月2023DELPHI程序設計基礎教程11.2建立Web瀏覽器瀏覽器的工作原理WWW的工作基于客戶機/服務器計算模型的,Web瀏覽器向Web服務器發(fā)出請求,而Web服務器接收到請求后向Web瀏覽器發(fā)回其所請求的WWW文檔,這個WWW文檔通常被稱為頁面(page)。在這個過程當中,必須要解決這樣幾個問題:(1)怎樣標識出分布在整個因特網(wǎng)上的WWW文檔?(2)萬維網(wǎng)上的各種超鏈接是通過什么協(xié)議來實現(xiàn)的?(3)怎樣使用戶可以方便地在萬維網(wǎng)上找到自己所需要的信息?(4)怎樣使不同作者創(chuàng)作的不同風格的WWW文檔都能在因特網(wǎng)上的各種計算機上顯示出來,同時使用戶清楚地知道在什么地方存在著超鏈接?12十二月2023DELPHI程序設計基礎教程11.2建立Web瀏覽器萬維網(wǎng)使用統(tǒng)一資源定位符URL(UniformResourceLocator)來標識萬維網(wǎng)上的各種文檔,并且每個文檔在整個因特網(wǎng)的范圍內(nèi),標識符URL是惟一的,這樣解決了第一個問題。為了解決第二個問題,萬維網(wǎng)客戶程序和萬維網(wǎng)服務器程序之間的交互要遵循嚴格的協(xié)議,這個協(xié)議就是超文本傳送協(xié)議HTTP(HypertextTransferProtocol)。HTTP是一個應用層協(xié)議,它使用TCP連接進行可靠的傳送。為了使用戶可以方便地在萬維網(wǎng)上找到自己所需要的信息,用戶可使用各種搜索工具。第四個問題的解決,萬維網(wǎng)使用了超文本標記語言HTML(HypertextMarkupLanguage),這樣只要使用了HTML語言編寫的WWW文檔都可以在因特網(wǎng)上的計算機上顯示出來,WWW文檔的設計者也可以很方便地用超鏈接從一個WWW文檔連接到因特網(wǎng)上的其它WWW頁面上了。12十二月2023DELPHI程序設計基礎教程11.2建立Web瀏覽器統(tǒng)一資源定位符URL統(tǒng)一資源定位符URL是用于完整地描述Internet上網(wǎng)頁和其他資源的地址的一種標識方法。Internet上的每一個網(wǎng)頁都具有一個唯一的名稱標識,通常稱之為URL地址,簡單地說,URL就是Web地址,俗稱“網(wǎng)址”。12十二月2023DELPHI程序設計基礎教程超文本傳送協(xié)議HTTP
HTTP協(xié)議(HypertextTransferProtocol,超文本傳輸協(xié)議)是應用層的一個協(xié)議,用于從WWW服務器傳輸超文本到本地瀏覽器。winsock通信機制根據(jù)傳輸數(shù)據(jù)類型的不同,常用的Socket類型有兩種:流式Socket(STREAMSOCKET)和數(shù)據(jù)報式Socket(DATAGRAMSOCK)。流式是一種面向連接的Socket,針對于面向連接的TCP服務應用;數(shù)據(jù)報式Socket是一種無連接的Socket,對應于無連接的UDP服務應用。12十二月2023DELPHI程序設計基礎教程11.2建立Web瀏覽器瀏覽器的設計Delphi具有強大的網(wǎng)絡編程功能,在進行設計之前,先介紹一下Delphi提供的用于設計Web瀏覽器的組件-TWebBrowser組件。TWebBrowser組件位于Internet組件頁中,使用該組件開發(fā)的應用程序可以瀏覽網(wǎng)頁、查看文檔、數(shù)據(jù)下載等功能。12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器Web程序的基本結構仍然是客戶/服務器模型??蛻舳藶閃eb瀏覽器,在上一節(jié)我們已經(jīng)介紹過了。服務器端為Web服務器,在這一節(jié)里我們將介紹Web服務器的工作原理以及在應用層有哪些應用,dephi給我們提供了哪些組件來實現(xiàn)這些應用。12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器Web服務器工作原理當客戶需要服務器提供服務時,會通過網(wǎng)絡向服務器發(fā)出一個連接請求,而此時Web服務器在網(wǎng)絡中處于偵聽狀態(tài),當這個請求通過網(wǎng)絡被Web服務器得到以后,Web瀏覽器與Web服務器建立起連接。Web瀏覽器再向Web服務器提出服務請求,Web服務器根據(jù)請求做出響應,響應的結果再從網(wǎng)絡傳輸給Web瀏覽器。當通話結束后,Web服務器斷開與Web瀏覽器的連接。12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器在上一節(jié)已經(jīng)介紹了Winsock通信機制,并且講到了根據(jù)傳輸數(shù)據(jù)類型的不同,常用的Socket類型有兩種:一種是面向連接的流式Socket,另一種是無連接的數(shù)據(jù)報式Socket。
12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器從圖11-13我們可以看出,對于面向連接的通信,服務器端首先創(chuàng)建Socket,然后將其與本地的IP地址和通信端口綁定(Bind),并對綁定的端口進行監(jiān)聽(Listen),一旦服務器監(jiān)聽到客戶端的通信請求(Connect)后,返回一個新的套接字與用戶連接,而原有的套接字繼續(xù)放在網(wǎng)絡中處于監(jiān)聽狀態(tài),以接受其他用戶的連接請求。然后讀出(Accept)客戶端的發(fā)送信息,完成相應處理(Recv/Send)后再寫入處理結果??蛻舳诵枰ㄐ艜r,創(chuàng)建本地Socket并完成與服務器端的連接(Connect),即可寫入(Send)或讀出(Recv)通信數(shù)據(jù)。但客戶端完成通信后關閉套接字(Socket),并通知服務器,然后關閉連接,結束此次通信。12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器從圖11-14中可以看出,采用無連接的套接字進行通信,由于在數(shù)據(jù)報中已包含對端地址,無連接通信的雙方在創(chuàng)建了本地Socket并與IP地址和通信端口綁定(Bind)后,即可接收(Recv)或發(fā)送(Send)數(shù)據(jù)。12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器應用層協(xié)議控件及應用應用層是TCP/IP協(xié)議模型中的最高層,它直接面對用戶的具體應用。TCP/IP協(xié)議模型在這一層有著很多協(xié)議來支持不同的應用,許多大家所熟悉的Internet的應用的實現(xiàn)都離不開這些協(xié)議。如我們進行萬維網(wǎng)(WWW)訪問用到了超文本傳送協(xié)議(hypertexttransferprotocol,HTTP)、文件傳輸用到了文件傳送協(xié)議(filetransferprotocol,F(xiàn)TP)、電子郵件發(fā)送用到了簡單郵件傳送協(xié)議(simplemailtransferprotocol,SMTP)、域名的解析用到了域名系統(tǒng)(domainnamesystem,DNS);、遠程登錄用到了遠程登錄協(xié)議(Telnet),都是屬于TCP/IP應用層的。12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器HTTP協(xié)議在11.2.1節(jié)中已經(jīng)介紹過HTTP協(xié)議,在Delphi7的Indy組件集當中,TIdHTTP組件和TIdHTTPServer組件實現(xiàn)超文本傳輸協(xié)議。12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器Telnet協(xié)議Telnet是一個簡單的遠程終端協(xié)議,使用的是客戶/服務器方式。用戶在用Telnet可以登錄到遠端的另外一個主機上。使用Telnet協(xié)議進行遠程登陸時需要滿足以下條件:在本的計算機上必須裝有包含Telnet協(xié)議的客戶程序;必須知道遠程主機的IP地址或域名;必須知道登錄標識與口令。Telnet以前應用得很多,現(xiàn)在有由于PC機的功能越來越強,用戶已較少使用了。但作為應用層的一個主要協(xié)議,Delphi還是對Telnet協(xié)議提供了很好的支持。在Delphi中使用TIdTelnet組件和TIdTelnetServer組件實現(xiàn)Telnet。12十二月2023DELPHI程序設計基礎教程11.3設計Web服務器FTP協(xié)議與大多數(shù)Internet服務一樣,F(xiàn)TP是一個基于客戶/服務器模型的應用層協(xié)議。用戶通過一個支持FTP協(xié)議的客戶機程序,連接到在遠程主機上的FTP服務器程序。用戶通過客戶機程序向服務器程序發(fā)出命令,服務器程序執(zhí)行用戶所發(fā)出的命令,并將執(zhí)行的結果返回到客戶機。
TIdFTP和TIdFTPServer是Indy9中專門支持FTP協(xié)議的組件。使用這兩個組件既可以開發(fā)FTP客戶端程序,又可以開發(fā)出功能完善的FTP服務器軟件。12十二月2023DELPHI程序設計基礎教程11.4電子郵件系統(tǒng)的開發(fā)電子郵件是當前網(wǎng)絡當中的一個重要應用。用戶在發(fā)送電子郵件的時候,電子郵件首先被發(fā)送到ISP(InternetServiceProvider,互聯(lián)網(wǎng)服務提供商)的郵件服務器,并被放在收信人郵箱中,收信人上網(wǎng)后,可到ISP的郵件服務器進行讀取。從這可以看出,電子郵件系統(tǒng)應包括電子郵件收發(fā)程序、郵件服務器以及電子郵件使用的協(xié)議。在應用層,SMTP協(xié)議是用來解決電子郵件發(fā)送的問題的,POP3(PostOfficeProtocol3,郵局協(xié)議的第3個版本)和IMAP(InternetMessageAccessProtocol,因特網(wǎng)報文存取協(xié)議)是用來解決電子郵件接收的問題的。12十二月2023DELPHI程序設計基礎教程11.4電子郵件系統(tǒng)的開發(fā)TIdSMTPDelphi7提供了一些組件,封裝了SMTP協(xié)議,用來開發(fā)SMTP客戶端程序。主要的組件有TIdSMTP、TIdMessage和TIdAttachment。利用這些組件可以快速地開發(fā)一個電子郵件的發(fā)送軟件。TIdPOP3TIdPOP3組件用于實現(xiàn)POP3協(xié)議的客戶端部分,從郵件服務器獲得E-Mail信息并將其返回到用戶計算機上。12十二月2023DELPHI程序設計基礎教程在本章里主要介紹了網(wǎng)絡編程的基礎知識,包括網(wǎng)絡的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報書研究基礎
- 課題申報書 正反
- 研修申報書校本課題
- 小學音樂美育課題申報書
- 河北學生項目課題申報書
- 合同范本有助于
- 高校協(xié)同育人課題申報書
- 課題申報書提建議
- 課題申報書 會計
- 品牌木門合同范例
- 《全科醫(yī)學概論》課件-以家庭為單位的健康照顧
- 醫(yī)院窗簾、隔簾采購 投標方案(技術方案)
- 控制計劃課件教材-2024年
- 自來水廠安全施工組織設計
- 川教版2024-2025學年六年級下冊信息技術全冊教案
- 《無人機測繪技術》項目1任務3無人機測繪基礎知識
- 招標代理機構遴選投標方案(技術標)
- 彩鋼瓦雨棚施工技術標準方案
- 2024年新疆(兵團)公務員考試《行測》真題及答案解析
- KTV商務禮儀培訓
- 三級安全教育試題(公司級、部門級、班組級)
評論
0/150
提交評論