Delphi程序的設計基礎教程第11章-網絡編程基礎_第1頁
Delphi程序的設計基礎教程第11章-網絡編程基礎_第2頁
Delphi程序的設計基礎教程第11章-網絡編程基礎_第3頁
Delphi程序的設計基礎教程第11章-網絡編程基礎_第4頁
Delphi程序的設計基礎教程第11章-網絡編程基礎_第5頁
已閱讀5頁,還剩25頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Delphi程序的設計基礎教程第11章-網絡編程基礎Delphi程序的設計基礎教程第11章-網絡編程基礎第十一章 網絡編程基礎本章學習導讀11.1 網絡基礎知識11.2 建立Web瀏覽器11.3 設計Web服務器11.4 電子郵件系統的開發本章小結第十一章 網絡編程基礎本章學習導讀21 九月 2022DELPHI程序設計基礎教程本章學習導讀計算機網絡目前已經深入到人們生活中的各個角落,計算機網絡技術也成了當前計算機技術發展的熱點之一。那么,什么是網絡編程呢?W.Richard.Stevens在他所著的UNIX網絡編程中是這樣解釋的:網絡編程,即是編寫通過計算機網絡與其他程序進行通信的這類程序。

2、作為流行的編程工具,Delphi的網絡編程功能非常強大。在本章將首先介紹網絡的基本知識,特別是網絡的客戶機/服務器模式以及網絡協議;然后通過實例介紹Web瀏覽器、Web服務器以及電子郵件系統的原理和開發。21 九月 2022DELPHI程序設計基礎教程本章學習導讀21 九月 2022DELPHI程序設計基礎教程 計算機網絡目前已經深入到人們生活中的各個角落,計算機網絡技術也成了當前計算機技術發展的熱點之一。那么,什么是網絡編程呢? W.Richard.Stevens在他所著的UNIX網絡編程中是這樣解釋的:網絡編程,即是編寫通過計算機網絡與其他程序進行通信的這類程序。作為流行的編程工具,Del

3、phi的網絡編程功能非常強大。在本章將首先介紹網絡的基本知識,特別是網絡的客戶機/服務器模式以及網絡協議;然后通過實例介紹Web瀏覽器、Web服務器以及電子郵件系統的原理和開發。11.1 網絡基礎知識21 九月 2022DELPHI程序設計基礎教程 計算21 九月 2022DELPHI程序設計基礎教程11.1 網絡基礎知識1客戶/服務器模式 計算機網絡,顧名思義就是由多臺計算機(或其它計算機網絡設備)通過傳輸介質和軟件物理(或邏輯)連接在一起組成的網絡。在這個網絡里,計算機與計算機之間可以完成資源共享、數據傳輸等任務。而在這個過程當中,存在著這樣兩種情況:一種是請求服務,另一種則是提供服務的,

4、這種主從關系被稱為客戶/服務器模型(即Client/Server模型,常簡寫為C/S模型)??蛻舳丝梢酝ㄟ^網絡向服務器端發出服務請求,當服務器端接收到請求后做出響應,然后再通過網絡將響應傳回到客戶端,如圖11-1所示。 21 九月 2022DELPHI程序設計基礎教程11.1 網21 九月 2022DELPHI程序設計基礎教程11.1 網絡基礎知識圖11-1 客戶/服務器模型 21 九月 2022DELPHI程序設計基礎教程11.1 網21 九月 2022DELPHI程序設計基礎教程11.1 網絡基礎知識2計算機網絡的體系結構 最常見的兩種模型,一個是ISO-OSI體系結構的七層模型,一個是T

5、CP/IP協議體系結構的四層模型。 21 九月 2022DELPHI程序設計基礎教程11.1 網21 九月 2022DELPHI程序設計基礎教程圖11-2 ISO/OSI參考模型11.1 網絡基礎知識21 九月 2022DELPHI程序設計基礎教程圖11-2 21 九月 2022DELPHI程序設計基礎教程圖 11-3 ISO-OSI與TCP/IP參考模型11.1 網絡基礎知識21 九月 2022DELPHI程序設計基礎教程圖 11-321 九月 2022DELPHI程序設計基礎教程11.2 建立Web瀏覽器 WWW是一種典型的客戶機/服務器方式,它一般采用Web瀏覽器作為WWW客戶程序。而儲

6、存網頁的計算機運行服務器程序,這個運行服務器程序的計算機常常被稱為Web服務器。 21 九月 2022DELPHI程序設計基礎教程11.2 21 九月 2022DELPHI程序設計基礎教程11.2 建立Web瀏覽器瀏覽器的工作原理WWW 的工作基于客戶機/服務器計算模型的,Web瀏覽器向Web服務器發出請求,而Web服務器接收到請求后向Web瀏覽器發回其所請求的WWW文檔,這個WWW文檔通常被稱為頁面(page)。在這個過程當中,必須要解決這樣幾個問題:(1)怎樣標識出分布在整個因特網上的WWW文檔?(2)萬維網上的各種超鏈接是通過什么協議來實現的?(3)怎樣使用戶可以方便地在萬維網上找到自己

7、所需要的信息?(4)怎樣使不同作者創作的不同風格的WWW文檔都能在因特網上的各種計算機上顯示出來,同時使用戶清楚地知道在什么地方存在著超鏈接?21 九月 2022DELPHI程序設計基礎教程11.2 21 九月 2022DELPHI程序設計基礎教程11.2 建立Web瀏覽器萬維網使用統一資源定位符URL(Uniform Resource Locator)來標識萬維網上的各種文檔,并且每個文檔在整個因特網的范圍內,標識符URL是惟一的,這樣解決了第一個問題。為了解決第二個問題,萬維網客戶程序和萬維網服務器程序之間的交互要遵循嚴格的協議,這個協議就是超文本傳送協議HTTP(Hypertext Tr

8、ansfer Protocol)。HTTP是一個應用層協議,它使用TCP連接進行可靠的傳送。為了使用戶可以方便地在萬維網上找到自己所需要的信息,用戶可使用各種搜索工具。第四個問題的解決,萬維網使用了超文本標記語言HTML(Hypertext Markup Language),這樣只要使用了HTML語言編寫的WWW文檔都可以在因特網上的計算機上顯示出來,WWW文檔的設計者也可以很方便地用超鏈接從一個WWW文檔連接到因特網上的其它WWW頁面上了。 21 九月 2022DELPHI程序設計基礎教程11.2 21 九月 2022DELPHI程序設計基礎教程11.2 建立Web瀏覽器統一資源定位符URL

9、 統一資源定位符URL是用于完整地描述Internet上網頁和其他資源的地址的一種標識方法。Internet上的每一個網頁都具有一個唯一的名稱標識,通常稱之為URL地址,簡單地說,URL就是Web地址,俗稱“網址”。21 九月 2022DELPHI程序設計基礎教程11.2 21 九月 2022DELPHI程序設計基礎教程超文本傳送協議HTTP HTTP協議(Hypertext Transfer Protocol,超文本傳輸協議)是應用層的一個協議,用于從WWW服務器傳輸超文本到本地瀏覽器。winsock通信機制 根據傳輸數據類型的不同,常用的Socket類型有兩種:流式Socket(STREA

10、M SOCKET)和數據報式Socket(DATAGRAM SOCK)。流式是一種面向連接的Socket,針對于面向連接的TCP服務應用;數據報式Socket是一種無連接的Socket,對應于無連接的UDP服務應用。21 九月 2022DELPHI程序設計基礎教程超文本傳送協21 九月 2022DELPHI程序設計基礎教程11.2 建立Web瀏覽器瀏覽器的設計Delphi具有強大的網絡編程功能,在進行設計之前,先介紹一下Delphi提供的用于設計Web瀏覽器的組件TWebBrowser組件。TWebBrowser組件位于Internet組件頁中,使用該組件開發的應用程序可以瀏覽網頁、查看文檔、

11、數據下載等功能。 21 九月 2022DELPHI程序設計基礎教程11.2 21 九月 2022DELPHI程序設計基礎教程11.3 設計Web服務器 Web程序的基本結構仍然是客戶/服務器模型。客戶端為Web瀏覽器,在上一節我們已經介紹過了。服務器端為Web服務器,在這一節里我們將介紹Web服務器的工作原理以及在應用層有哪些應用,dephi給我們提供了哪些組件來實現這些應用。21 九月 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基礎教程11.3 設計Web服務器Web服務器工作原理當客戶需要服務器提供服務時,會通過網絡向服務器發出一個連接請求,而此

12、時Web服務器在網絡中處于偵聽狀態,當這個請求通過網絡被Web服務器得到以后,Web瀏覽器與Web服務器建立起連接。Web瀏覽器再向Web服務器提出服務請求,Web服務器根據請求做出響應,響應的結果再從網絡傳輸給Web瀏覽器。當通話結束后,Web服務器斷開與Web瀏覽器的連接。21 九月 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基礎教程11.3 設計Web服務器在上一節已經介紹了Winsock通信機制,并且講到了根據傳輸數據類型的不同,常用的Socket類型有兩種:一種是面向連接的流式Socket,另一種是無連接的數據報式Socket。 21 九月

13、 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基礎教程11.3 設計Web服務器從圖11-13我們可以看出,對于面向連接的通信,服務器端首先創建Socket,然后將其與本地的IP地址和通信端口綁定(Bind),并對綁定的端口進行監聽(Listen),一旦服務器監聽到客戶端的通信請求(Connect)后,返回一個新的套接字與用戶連接,而原有的套接字繼續放在網絡中處于監聽狀態,以接受其他用戶的連接請求。然后讀出(Accept)客戶端的發送信息,完成相應處理 (Recv/Send)后再寫入處理結果。客戶端需要通信時,創建本地Socket并完成與服務器端的連接

14、(Connect),即可寫入(Send)或讀出(Recv)通信數據。但客戶端完成通信后關閉套接字(Socket),并通知服務器,然后關閉連接,結束此次通信。 21 九月 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基礎教程11.3 設計Web服務器從圖11-14中可以看出,采用無連接的套接字進行通信,由于在數據報中已包含對端地址,無連接通信的雙方在創建了本地Socket并與IP地址和通信端口綁定(Bind)后,即可接收(Recv)或發送(Send)數據。21 九月 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基

15、礎教程11.3 設計Web服務器應用層協議控件及應用應用層是TCP/IP協議模型中的最高層,它直接面對用戶的具體應用。TCP/IP協議模型在這一層有著很多協議來支持不同的應用,許多大家所熟悉的Internet的應用的實現都離不開這些協議。如我們進行萬維網(WWW)訪問用到了超文本傳送協議(hyper text transfer protocol,HTTP)、文件傳輸用到了文件傳送協議(file transfer protocol,FTP)、電子郵件發送用到了簡單郵件傳送協議(simple mail transfer protocol,SMTP)、域名的解析用到了域名系統(domain name

16、 system,DNS);、 遠程登錄用到了遠程登錄協議(Telnet),都是屬于TCP/IP應用層的。21 九月 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基礎教程11.3 設計Web服務器HTTP協議 在11.2.1節中已經介紹過HTTP協議,在Delphi7的Indy組件集當中,TIdHTTP組件和TIdHTTPServer組件實現超文本傳輸協議。21 九月 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基礎教程11.3 設計Web服務器Telnet協議 Telnet是一個簡單的遠程終端協議,使用的是客戶

17、/服務器方式。用戶在用Telnet可以登錄到遠端的另外一個主機上。使用Telnet協議進行遠程登陸時需要滿足以下條件:在本的計算機上必須裝有包含Telnet協議的客戶程序;必須知道遠程主機的IP地址或域名;必須知道登錄標識與口令。Telnet以前應用得很多,現在有由于PC機的功能越來越強,用戶已較少使用了。但作為應用層的一個主要協議,Delphi還是對Telnet協議提供了很好的支持。在Delphi中使用TIdTelnet組件和TIdTelnetServer組件實現Telnet。21 九月 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基礎教程11.3

18、設計Web服務器FTP協議 與大多數Internet服務一樣,FTP是一個基于客戶/服務器模型的應用層協議。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP服務器程序。用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,并將執行的結果返回到客戶機。 TIdFTP和TIdFTPServer是Indy9中專門支持FTP協議的組件。使用這兩個組件既可以開發FTP客戶端程序,又可以開發出功能完善的FTP服務器軟件。21 九月 2022DELPHI程序設計基礎教程11.3 21 九月 2022DELPHI程序設計基礎教程11.4 電子郵件系統的開發電子郵件是當前網絡

19、當中的一個重要應用。用戶在發送電子郵件的時候,電子郵件首先被發送到ISP(Internet Service Provider,互聯網服務提供商)的郵件服務器,并被放在收信人郵箱中,收信人上網后,可到ISP的郵件服務器進行讀取。從這可以看出,電子郵件系統應包括電子郵件收發程序、郵件服務器以及電子郵件使用的協議。在應用層,SMTP協議是用來解決電子郵件發送的問題的,POP3(Post Office Protocol 3,郵局協議的第3個版本)和IMAP(Internet Message Access Protocol,因特網報文存取協議)是用來解決電子郵件接收的問題的。21 九月 2022DELP

20、HI程序設計基礎教程11.4 21 九月 2022DELPHI程序設計基礎教程11.4 電子郵件系統的開發TIdSMTP Delphi7提供了一些組件,封裝了SMTP協議,用來開發SMTP客戶端程序。主要的組件有TIdSMTP、TIdMessage和TIdAttachment。利用這些組件可以快速地開發一個電子郵件的發送軟件。TIdPOP3 TIdPOP3組件用于實現POP3協議的客戶端部分,從郵件服務器獲得E-Mail信息并將其返回到用戶計算機上。21 九月 2022DELPHI程序設計基礎教程11.4 21 九月 2022DELPHI程序設計基礎教程 在本章里主要介紹了網絡編程的基礎知識,包括網絡的基礎知識,以及如何使用Delp

溫馨提示

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

評論

0/150

提交評論