當客戶和伺服器彼此交換資料前,必須先在雙方之間建立一個TCP連線,之後才能傳輸資料。TCP提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。
UDP---使用者資料報協議,是一個簡單的面向資料報的運輸層協議。UDP不提供可靠性,它只是把應用程式傳給IP層的資料報傳送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸資料報前不用在客戶和伺服器之間建立一個連線,且沒有超時重發等機制,故而傳輸速度很快。
區別:
1.基於連線與無連線
2.對系統資源的要求(TCP較多,UDP少)
3.UDP程式結構較簡單
4.流模式與資料報模式
TCP保證資料正確性,UDP可能丟包
TCP保證資料順序,UDP不保證
具體程式設計時的區別
socket()的引數不同
UDPServer不需要呼叫listen和accept
UDP收發資料用sendto/recvfrom函式
TCP:地址資訊在connect/accept時確定UDP:在sendto/recvfrom函式中每次均需指定地址資訊
當客戶和伺服器彼此交換資料前,必須先在雙方之間建立一個TCP連線,之後才能傳輸資料。TCP提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。
UDP---使用者資料報協議,是一個簡單的面向資料報的運輸層協議。UDP不提供可靠性,它只是把應用程式傳給IP層的資料報傳送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸資料報前不用在客戶和伺服器之間建立一個連線,且沒有超時重發等機制,故而傳輸速度很快。
區別:
1.基於連線與無連線
2.對系統資源的要求(TCP較多,UDP少)
3.UDP程式結構較簡單
4.流模式與資料報模式
TCP保證資料正確性,UDP可能丟包
TCP保證資料順序,UDP不保證
具體程式設計時的區別
socket()的引數不同
UDPServer不需要呼叫listen和accept
UDP收發資料用sendto/recvfrom函式
TCP:地址資訊在connect/accept時確定UDP:在sendto/recvfrom函式中每次均需指定地址資訊