Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android中通信協議,Android通信協議

Android中通信協議,Android通信協議

編輯:關於android開發

Android中通信協議,Android通信協議


一、TCP/IP協議(傳輸層協議)

     1、Socket與ServerSocket

           Socket是應用層與TCP/IP協議簇通訊的中間抽象層,Socket是一組接口,在設計模式中,Socket的設計就是門面模式,它把復雜的TCP/IP協議簇的內容隱藏在套接字接口後面,用戶無需關心協議的實現,只需使用Socket提供的接口即可。

           Socket的類型有兩種,一種是面向連接的TCP應用服務,一種是面向無連接的UDP(User Data Package)應用服務。通俗的理解就是,TCP方式是打電話(連接性),UDP方式是發短信(無連接)。

           ServerSocket類,是用於監聽計算機的指定端口處建立一個監聽服務,正真傳輸數據的對象是socket對象。

           ServerSocket 一般僅用於設置端口號和監聽,真正進行通信的是服務器端的Socket與客戶端的Socket,在ServerSocket 進行accept之後,就將主動權轉讓了。

           詳細請看:http://www.cnblogs.com/mareymarey111/archive/2011/12/08/2280253.html

二、UDP協議(傳輸層協議)

       UDP協議全稱是用戶數據報協議 ,在網絡中它與TCP協議一樣用於處理數據包,是一種無連接的協議。在OSI模型中,在第四層——傳輸層,處於IP協議的上一層。UDP有不提供數據包分組、組裝和不能對數據包進行排序的缺點,也就是說,當報文發送之後,是無法得知其是否安全完整到達的。UDP用來支持那些需要在計算機之間傳輸數據的網絡應用。包括網絡視頻會議系統在內的眾多的客戶/服務器模式的網絡應用都需要使用UDP協議。UDP協議從問世至今已經被使用了很多年,雖然其最初的光彩已經被一些類似協議所掩蓋,但是即使是在今天UDP仍然不失為一項非常實用和可行的網絡傳輸層協議。

       UDP協議的主要作用是將網絡數據流量壓縮成數據包的形式。一個典型的數據包就是一個二進制數據的傳輸單位。每一個數據包的前8個字節用來包含報頭信息,剩余字節則用來包含具體的傳輸數據。

       為了在給定的主機上能識別多個目的地址,同時允許多個應用程序在同一台主機上工作並能獨立地進行數據包的發送和接收,設計用戶數據報協議UDP。

       使用UDP協議包括:TFTP、SNMP、NFS、DNS、BOOTP

  UDP使用底層的互聯網協議來傳送報文,同IP一樣提供不可靠的無連接數據包傳輸服務。它不提供報文到達確認、排序、及流量控制等功能。

     1、DatagramSocket與DatagramPackage

          DatagramSocket代表UDP協議的Socket,DatagramSocket本身只是碼頭,不維護狀態,不能產生IO流,它的唯一作用就是接收和發送數據報,

          詳細解釋請看:http://blog.csdn.net/jiangxinyu/article/details/8161044

          DatagramPacket來代表數據報,DatagramSocket接收和發送的數據都是通過DatagramPacket對象完成的。

          詳細解釋請看:http://blog.csdn.net/oney139/article/details/8063067

三、HTTP協議(應用層協議)

       HTTP協議是一種應用層協議,HTTP是HyperText Transfer Protocol(超文本傳輸協議)的英文縮寫。HTTP可以通過傳輸層的TCP協議在客戶端和服務器之間傳輸數據。HTTP協議主要用於Web浏覽器和Web服務器之間的數據交換。我們在使用IE或Firefox浏覽網頁或下載Web資源時,通過在地址欄中輸入http://host:port/path,開頭的4個字母http就相當於通知浏覽器使用HTTP協議來和host所確定的服務器進行通訊。  

       詳細請看:http://blog.csdn.net/xijiaohuangcao/article/details/6729277

       在Android中使用JDK的HttpURLConnection和Apache的HttpClient訪問網絡資源

     1、HttpURLConnection

       Java 應用程序需要直接通過 HttpURLConnection類來訪問指定url地址的網絡資源,提供了post和get的方法。

       詳情解釋請看:http://blog.csdn.net/loovejava/article/details/12950129

     2、HttpClient(Google集成了Apache HTTP協議)

       Android中,androidSDK中集成了Apache的HttpClient模塊,用來提供高效的、最新的、功能豐富的支持 HTTP 協議工具包,並且它支持 HTTP 協議最新的版本和建議。

       詳情解釋請看:http://blog.csdn.net/litton_van/article/details/6544086

       HttpURLConnection與httpClient的區別在於httpClient封裝好了http協議請求的方法和模塊,快速集成方便。詳解:http://blog.csdn.net/micaixiaoduanku/article/details/39958615

三、Android調用webService通信

      Web Services(Web服務)是一個用於支持網絡間不同機器互操作的軟件系統,它是一種自包含、自描述和模塊化的應用程序,它可以在網絡中被描述、發布和調用,可以將它看作是基於網絡的、分布式的模塊化組件。
      Web Services是建立在通用協議的基礎之上,如HTTP、SOAP、UDDI、WSDL等,這些協議在操作系統、編程語言和對象模型的選擇上沒有任何傾向,因此有著很強的生命力。
      Web Services的優勢在於提供了不同應用程序平台之間的互操作,它使得基於組件的開發和Web相結合的效果達到最佳。它是基於HTTP協議的,調用請求和回應消息都可以穿過防火牆,不需要更改防火牆的設置,這樣就避免了使用特殊端口進行通信時無法穿越防火牆的問題。

      簡單的說:通過使用WebService,我們能夠像調用本地方法一樣去調用遠程服務器上的方法。我們並不需要關心遠程的那個方法是Java寫的,還是PHP或C#寫的;我們並不需要關心遠程的方法是基於Unix平台,還是Windows平台,也就是說WebService與平台和語言無關。

     Android調用webservice主要有:SOAP協議和 WSDL協議

     1、SOAP協議

          SOAP(Simple Object Access Protocol,簡單對象訪問協議)是一種輕量級的、簡單的、基於XML的協議,被設計用於在分布式環境中交換格式化和固化信息的簡單協議。也就是說,要進行通信,進行數據訪問傳輸,就必須依賴於一定的協議,而SOAP正是WebService通信中所依賴的一種協議。目前經常使用的SOAP協議有兩個版本:SOAP 1.1 和 SOAP 1.2。

          注意的是:Android使用soap協議調用webservice的時候,調用的是服務器的方法,傳的參數要按順序傳,配置的版本號也要正確,讀者可自行參考詳解做。見附件

          詳細使用:http://blog.csdn.NET/long704480904/article/details/8636734          

     2、WSDL協議

           WSDL(Web Services Description Language,即Web服務描述語言)是一種用來描述Web服務的XML語言,它描述了Web服務的功能、接口、參數、返回值等,便於用戶綁定和調用服務。它以一種和具體語言無關的方式定義了給定Web服務調用和應答的相關操作和消息。

           詳細使用:http://blog.csdn.net/howlaa/article/details/21237331

四、Android使用webview調用服務器

       直接使用WebView視圖組件顯示網頁。基於WebView 進行開發,Google已經提供了一個基於chrome-lite的Web浏覽器,直接就可以進行上網浏覽網頁。  

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved