Android 網路程式設計 IP TCP UDP

2021-07-04 23:13:30 字數 1052 閱讀 5389

基本概念

ip:網際網路協議(internet protocol,ip)是用於報文交換網路的一種面向資料的協議。ip是在 tcp/ip 協議中網路層的主要協議,任務是根據源主機和目的主機的位址傳送資料。為達到此目的,ip 定義了定址方法和資料報的封裝結構。

tcp:傳輸控制協議(transmission control protocol,tcp)是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議。

udp:使用者資料報協議(udp)是 tcp/ip 模型中一種面向無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務。

一.什麼是tcp連線的三次握手

第一次握手:客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。

握手過程中傳送的包裡不包含資料,三次握手完畢後,客戶端與伺服器才正式開始傳送資料。理想狀態下,tcp連線一旦建立,在通訊雙方中的任何一方主動關閉連線之前,tcp 連線都將被一直保持下去。斷開連線時伺服器和客戶端均可以主動發起斷開tcp連線的請求,斷開過程需要經過「四次握手」(過程就不細寫了,就是伺服器和客戶端互動,最終確定斷開)

二.tcp和udp的區別

1.tcp是面向鏈結的,雖然說網路的不安全不穩定特性決定了多少次握手都不能保證連線的可靠性,但tcp的三次握手在最低限度上(實際上也很大程度上保證了)保證了連線的可靠性;而udp不是面向連線的,udp傳送資料前並不與對方建立連線,對接收到的資料也不傳送確認訊號,傳送端不知道資料是否會正確接收,當然也不用重發,所以說udp是無連線的、不可靠的一種資料傳輸協議。

2.也正由於1所說的特點,使得udp的開銷更小資料傳輸速率更高,因為不必進行收發資料的確認,所以udp的實時性更好。

Android 網路程式設計

在寫android相關的webservice時,最基礎的就是android系統的網路程式設計。最基礎的是socket,但是針對於android來進行socket程式設計就會顯得太麻煩,其實android已經為我們封裝好了網路程式設計的相關類,常用的是httpget httppost以及httpurl...

Android網路程式設計

socket程式設計客戶端 socket s new socket ip,port socket程式設計服務端 serversocket ss new serversocket port socket s ss.accept socket服務端的基本程式設計架構 serversocket ss ne...

Android網路程式設計

1 tcp ip的socket serversocket。2 udp的datagramsocket datagrampackage。考慮到android 裝置主要是手持終端,ip都是伴隨著上網進行分配的。不是固定不變的。因此開發也是與普通網際網路應用有所差異的。3 直接針對url的httpurlco...