基礎篇C# 簡介開發環境變數與運算流程控制陣列函數物件例外處理函式庫篇檔案處理資料結構正規表達式Thread應用篇視窗程式媒體影音網路程式遊戲程式手機程式資料庫雲端運算特殊功能委派擴展方法序列化LinQWPF網路資源教學影片投影片教學文章軟體下載考題解答101習題 |
簡介最常被使用的網路函式庫稱為 Socket,這個名詞起源於柏克萊大學於 1983 年所釋放出來的 Berkeley Sockets 函式庫,該函式庫將網路視為串流。因而使存取網路的動作,與存取檔案一樣,都可以透過串流機制運行。 雖然 Socket 函式庫將網路抽像化為串流,但是理解網路的架構對程式的學習仍有很大的幫助,目前我們所使用的 Internet 網路是基於 TCP/IP 的網路架構,要能理解目前的網路程式架構,首先要從 TCP/IP 的架構下手。 TCP/IP 網路架構網路的 OSI 參考模型將網路的層次分為七層,但是 TCP/IP 架構所依據的 ARPANET DoD 模型則只有四層,兩者之間存在某種對應關係,這個對應關係顯示於下圖當中,能正確的理解該圖,將有助於程式設計師理解網路程式的原理。 圖一、OSI 與 TCP/IP 的層次對應圖 舉例而言,當我們使用 TCP 的方式傳輸訊息時,由於 TCP 傳輸層會自動維持封包排列的順序,因此先傳送的封包一定會先到達,這讓程式設計師不需要擔心封包的先後順序問題。但在使用 UDP 傳輸的時候,先傳送的封包可能反而會後到達,因此訊息的順序將無法確保,這種 UDP 傳送方式雖然較快,但是卻較不方便,通常只被使用在強調速度的領域,像是立即影音傳輸的應用上。 基於 HTTP 的 WebHTTP 是 Web 全球資訊網 (萬維網) 的基礎協定,該協定架構在 TCP/IP 架構之上,屬於應用層的協定。構成 HTTP 的主要兩個應用程式是瀏覽器 (Browser) 與網站 (Web Server)。HTTP 是一個典型的 Client-Server (客戶端-伺服端) 架構的協定,使用者透過 Client 端的瀏覽器連結到 Server 的伺服器,然後由伺服端將結果以 HTML 的網頁格式傳回。 HTML 的網頁當中包含了許多超連結 (Hyperlink),這些超連結連接到某些網址 (URL),於是使用者可以透過瀏覽器中的超連結,進一步點選其他的網頁,進行網路瀏覽 (衝浪) 的行為。 Socket 函式庫目前大部分的程式語言與平台 (像是 Java, C#, .NET, UNIX, Linux, ….) 都已經支援了 Socket 函式庫。但是由於語言與設計者的不同,這些 Socket 函式庫的使用方式都略有差異。在 C# 最常使用的是微軟 .NET 平台當中 的 Socket 函式庫,這個函式庫相當的成熟,除了將 TCP/IP 封裝成 Socket 函式庫之外,微軟甚至進一步將 HTTP 、加解密、甚至是高階的 Web 服務等機制,都包含在 .NET 平台當中,因此 C# 的程式設計師可以很輕易的寫出網路應用程式。 結語Socket 函式庫與 TCP/IP/HTTP 等層級的協定,是學習網路程式的基礎,在下一節當中,我們將會進一步以範例說明網路程式的架構。 參考文獻 |
C# 網路程式設計簡介
page revision: 1, last edited: 15 Jun 2010 05:31
Post preview:
Close preview