android--------Socket的簡單了解
Socket目錄
Socket通信簡介
Android與服務器的通信方式主要有兩種,一是Http通信,一是Socket通信。兩者的最大差異在於,http連接使用的是“請求—響應方式”,即在請求時建立連接通道,當客戶端向服務器發送請求後,服務器端才能向客戶端返回數據。而Socket通信則是在雙方建立起連接後就可以直接進行數據的傳輸,在連接時可實現信息的主動推送,而不需要每次由客戶端想服務器發送請求。 那麽,什麽是socket?Socket又稱套接字,在程序內部提供了與外界通信的端口,即端口通信。通過建立socket連接,可為通信雙方的數據傳輸傳提供通道。socket的主要特點有數據丟失率低,使用簡單且易於移植。
什麽是Socket
Socket是一種抽象層,應用程序通過它來發送和接收數據,使用Socket可以將應用程序添加到網絡中,與處於同一網絡中的其他應用程序進行通信。簡單來說,Socket提供了程序內部與外界通信的端口並為通信雙方的提供了數據傳輸通道。
1:Socket
的使用類型主要有兩種:
- 流套接字(
streamsocket
) :基於TCP
協議,采用 流的方式 提供可靠的字節流服務 - 數據報套接字(
datagramsocket
):基於UDP
協議,采用 數據報文 提供數據打包發送的服務
2:通信模型圖
Socket 與 Http 對比
Socket
TCP / IP
協議屬於傳輸層,解決的是數據如何在網絡中傳輸的問題HTTP
協議 屬於 應用層,解決的是如何包裝數據
由於二者不屬於同一層面,所以本來是沒有可比性的。但隨著發展,默認的Http裏封裝了下面幾層的使用,所以才會出現Socket
& HTTP
協議的對比:(主要是工作方式的不同):
Http
:采用 請求—響應 方式。
- 即建立網絡連接後,當 客戶端 向 服務器 發送請求後,服務器端才能向客戶端返回數據。
- 可理解為:是客戶端有需要才進行通信
Socket
:采用 服務器主動發送數據 的方式
- 即建立網絡連接後,服務器可主動發送消息給客戶端,而不需要由客戶端向服務器發送請求
- 可理解為:是服務器端有需要才進行通信
相關更多理論可以看: https://www.jianshu.com/p/a6d086a3997d
參考資料:
https://www.jianshu.com/p/a6d086a3997d
https://www.cnblogs.com/zhujiabin/p/5675716.html
https://blog.csdn.net/carson_ho/article/details/53366856
android--------Socket的簡單了解