Android中通訊協議

1、TCP/IP協議(傳輸層協議)php

     一、Socket與ServerSockethtml

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

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

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

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

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

2、UDP協議(傳輸層協議)設計模式

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

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

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

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

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

     一、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

3、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訪問網絡資源

     一、HttpURLConnection

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

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

     二、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

3、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協議

     一、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          

     二、WSDL協議

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

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

4、Android使用webview調用服務器

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

相關文章
相關標籤/搜索