android--------Socket的簡單瞭解

Socket目錄

Socket通訊簡介 

Android與服務器的通訊方式主要有兩種,一是Http通訊,一是Socket通訊。二者的最大差別在於,http鏈接使用的是「請求—響應方式」,即在請求時創建鏈接通道,當客戶端向服務器發送請求後,服務器端才能向客戶端返回數據。而Socket通訊則是在雙方創建起鏈接後就能夠直接進行數據的傳輸,在鏈接時可實現信息的主動推送,而不須要每次由客戶端想服務器發送請求。 那麼,什麼是socket?Socket又稱套接字,在程序內部提供了與外界通訊的端口,即端口通訊。經過創建socket鏈接,可爲通訊雙方的數據傳輸傳提供通道。socket的主要特色有數據丟失率低,使用簡單且易於移植。html

 

 

什麼是Socket

Socket是一種抽象層,應用程序經過它來發送和接收數據,使用Socket能夠將應用程序添加到網絡中,與處於同一網絡中的其餘應用程序進行通訊。簡單來講,Socket提供了程序內部與外界通訊的端口併爲通訊雙方的提供了數據傳輸通道。服務器

 

1:Socket的使用類型主要有兩種:

  • 流套接字(streamsocket) :基於 TCP協議,採用 流的方式 提供可靠的字節流服務
  • 數據報套接字(datagramsocket):基於 UDP協議,採用 數據報文 提供數據打包發送的服務

 

 

2:通訊模型圖

 

 

 

 

Socket 與 Http 對比

  • Socket屬於傳輸層,由於 TCP / IP協議屬於傳輸層,解決的是數據如何在網絡中傳輸的問題
  • HTTP協議 屬於 應用層,解決的是如何包裝數據

 

因爲兩者不屬於同一層面,因此原本是沒有可比性的。但隨着發展,默認的Http裏封裝了下面幾層的使用,因此纔會出現Socket & HTTP協議的對比:(主要是工做方式的不一樣):網絡

Http:採用 請求—響應 方式。socket

  1. 即創建網絡鏈接後,當 客戶端 向 服務器 發送請求後,服務器端才能向客戶端返回數據。
  2. 可理解爲:是客戶端有須要才進行通訊

 

Socket:採用 服務器主動發送數據 的方式spa

  1. 即創建網絡鏈接後,服務器可主動發送消息給客戶端,而不須要由客戶端向服務器發送請求
  2. 可理解爲:是服務器端有須要才進行通訊

 

相關更多理論能夠看: https://www.jianshu.com/p/a6d086a3997d.net

 

 

參考資料:code

https://www.jianshu.com/p/a6d086a3997dhtm

https://www.cnblogs.com/zhujiabin/p/5675716.htmlblog

https://blog.csdn.net/carson_ho/article/details/53366856stream

相關文章
相關標籤/搜索