客戶端

與伺服器相對應,為客戶提供本地服務的程序

客戶端(Client)或稱為用戶端,是指與伺服器相對應,為客戶提供本地服務的程序。除了一些只在本地運行的應用程序之外,一般安裝在普通的客戶機上,需要與服務端互相配合運行。

網際網路發展以後,較常用的用戶端包括了如萬維網使用的網頁瀏覽器,收寄電子郵件時的電子郵件客戶端,以及即時通訊的客戶端軟體等。對於這一類應用程序,需要網路中有相應的伺服器和服務程序來提供相應的服務,如資料庫服務,電子郵件服務等等,這樣在客戶機和伺服器端,需要建立特定的通信連接,來保證應用程序的正常運行。

簡介


客戶端也稱為工作站(Workstation),指連入網路的計算機,它接受網路伺服器的控制和管理,能夠共享網路上的各種資源。個人計算機接入網際網路后,在獲取網際網路服務的同時,其本身就成為一台網際網路上的工作站。網路工作站需要運行網路操作系統的客戶端軟體。
隨著各類平板電腦、智能手機的出現,這些設備本質上是一個個小型化的手持計算機設備,具有相當強大的網路功能。它們自然也就成了網路客戶端中迅速擴大的主力隊伍

原理


客戶端及伺服端的關係不見得一定建立在兩台分開的機器上,同一台機器中也有這種主從關係的存在。提供服務的伺服端及接受服務的客戶端也有可能都在同一台機器上,例如我們在提供網頁的伺服器上執行瀏覽器瀏覽本機所提供的網頁,這樣在同一台機器上就同時扮演伺服端及客戶端。

發展


隨著計算機網路的發展,連接形式逐漸發生變化。至今為止,主流的兩種網路連接模式為C/S和B/S模式,即客戶端/伺服器端和瀏覽器端/伺服器端。因此,所說的客戶端更應該理解為C/S。即通過向客戶機上寫一些程序,保證即使伺服器端出現故障或者維護時候,客戶端依然可以在保證工作的前提下、實現離線工作。

DNS客戶端


當用戶使用域名而不是IP地址訪問網路資源時,系統會對需要訪問的域名進行解析,即找到域名對應的IP地址。首先查詢本地的域名信息緩存,如果查詢成功,則返回相應的IP地址,否則向本地域名伺服器發出DNS請求。

web客戶端


Web客戶端主要指web瀏覽器(Browser)。其主要功能是將用戶向伺服器請求的Web資源呈現出來,顯示在瀏覽器窗口中。資源通常有html、pdf、image及其他格式。主流的Web頁面瀏覽器有:微軟的IE、Mozilla的Firefox、蘋果公司的Safari、Google的Chrome及Opera軟體公司的Opera 。
瀏覽器的主要組件包括用戶界面(User Interface)、瀏覽器引擎(Browser Engine)、渲染引擎(Rendering Engine)、網路(Networking)、UI後端(UI Backend)、JS解釋器(JavaScript)、數據存儲(Data persistence)等

遊戲客戶端


客戶端是將遊戲中的很多資源儲存起來的軟體。玩家通過客戶端輸入指令,客戶端翻譯成數據發送給伺服器,伺服器處理完給出結果,然後再由客戶端翻譯成圖形化表現出來告訴玩家。可以說,客戶端是一個玩家和伺服器之間中介。

移動客戶端


移動客戶端以手機為例,手機客戶端就是可以在手機終端運行的軟體。也是3G產業中一個重點發展的項目,具有重要的意義。
隨著3G時代的到來,手機上網已經慢慢地進入了人們的生活,談到未來基於手機上的無線網際網路的發展趨勢究竟是手機客戶端上網還是手機wap上網,這個階段我們還很難過早的下定論,但是有一點可以肯定,那就是用戶體驗的好壞將直接決定兩者的前途命運。我們現在就來看看在的無線網際網路網路環境以及各種條件之下,手機客戶端上網與手機wap上網各自的優缺點,做一個簡單的評測。無線網際網路行業以手機客戶端為主的產品很多。客戶端軟體,需要在手機上安裝才能使用。而利用手機WAP上網,第一次則需要手動輸入網址,當然可以將該網址保存為標籤,之後也可以做到較為方便的訪問。在手機上完成輸入網址或者在眾多保存的標籤中查找需要的網址,確實是需要一定時間的。除了遊戲類客戶端,漸漸地商務應用的客戶端漸漸被大家熟悉和應用,為我們的生活、工作帶來了便捷。
CS模式和BS模式結合產品
例如手機QQ中,涉及到IM部分均為CS模式(這一塊難以通過BS模式支持的協議來表現),而其他的頻道例如資訊、音樂、書城、股票等則通過BS方式來表現。手機msn也和手機qq類似,在IM功能實現上採用CS,而資訊類採用BS方式。手機QQ音樂中除音樂門戶是BS模式外,其他都是CS模式實現。

客戶端配置


客戶端根據Myc1ienthttpbridge來使用隊列化調用。Myclienthttpbridge可以與客戶端一起託管在同一個進程、不同的進程或單獨的伺服器上。 Myclienthttpbridge服務使用WshttpBindIng去調用遠程服務。客戶端需要檢索遠程Internet服務的元數據(比如ImyContracthttpbridge的定義),並把它轉換為一個隊列契約(比如 IMyContract) 。

客戶端編程


若要調用服務的操作,則客戶端首先要導入服務契約到客戶端的本地描述(NativeRepresentation)中。如果客戶端使用了WCF,調用操作的常見做法是使用代理。代理是一個CLR類,它公開了一個單獨的CLR介面用於表示服務契約。注意,如果服務支持多個契約(至少是多個終結點),客戶端則需要一個代理對應每個契約類型。代理不僅提供了與服務契約相同的操作,而且還包括管理代理對象生命周期及管理服務連接的方法。代理完全封裝了服務的各個方面:服務的位置、實現技術、運行時平台,以及通信傳輸