TCP 和 UDP 在socket程式設計中的區別

2021-06-29 07:57:45 字數 1275 閱讀 6225

一、tcp與udp的區別

基於連線與無連線 

對系統資源的要求(tcp較多,udp少) 

udp程式結構較簡單 

流模式與資料報模式 

tcp保證資料正確性,udp可能丟包 

tcp保證資料順序,udp不保證 

部分滿足以下幾點要求時,應該採用udp 面向資料報方式 網路資料大多為短訊息 

擁有大量client 

對資料安全性無特殊要求 

網路負擔非常重,但對響應速度要求高 

具體程式設計時的區別 socket()的引數不同 

udp server不需要呼叫listen和accept 

udp收發資料用sendto/recvfrom函式 

tcp:位址資訊在connect/accept時確定 

udp:在sendto/recvfrom函式中每次均 需指定位址資訊 

udp:shutdown函式無效

二、man----socket

三、程式設計區別

與之對應的udp程式設計步驟要簡單許多,分別如下: 

udp程式設計的伺服器端一般步驟是: 

1、建立乙個socket,用函式socket(); 

2、設定socket屬性,用函式setsockopt();* 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind(); 

4、迴圈接收資料,用函式recvfrom(); 

5、關閉網路連線; 

udp程式設計的客戶端一般步驟是: 

1、建立乙個socket,用函式socket(); 

2、設定socket屬性,用函式setsockopt();* 可選 

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選 

4、設定對方的ip位址和埠等屬性; 

5、傳送資料,用函式sendto(); 

6、關閉網路連線;

1. tcp 

server:

socket -- setsockopt - bind - listen - accept - send/recv(read/write)

client:

socket -- setsockopt - bind - connect - send/recv(read/write)

2. udp

server:

socket -- setsockopt - bind - recvfrom

client:

socket -- setsockopt - bind - sendto

TCP和UDP的區別及socket網路程式設計步驟

tcp和udp的區別 1.連線 tcp是面向連線的傳輸層協議,即傳輸資料之前必須先建立好連線。udp無連線。2.服務物件 tcp是點對點的兩點間服務,即一條tcp連線只能有兩個端點 udp支援一對一,一對多,多對一,多對多的互動通訊。3.可靠性 tcp是可靠交付 無差錯,不丟失,不重複,按序到達。u...

Socket 程式設計 TCP 和UDP

三次握手過程 1.建立連線時,客戶端傳送syn包到伺服器,並進入syn sent狀態,等待伺服器確認。2.伺服器收到syn包,反饋乙個syn ack包,進入syn recv狀態。3.客戶端接到伺服器的syn ack包,向伺服器傳送確認包ack,同時進入established狀態,三次握手完成。伺服器...

TCP 和 UDP 在socket程式設計中的區別

網路收集 一 tcp與udp的區別 基於連線與無連線 對系統資源的要求 tcp較多,udp少 udp程式結構較簡單 流模式與資料報模式 tcp保證資料正確性,udp可能丟包 tcp保證資料順序,udp不保證 部分滿足以下幾點要求時,應該採用udp 面向資料報方式 網路資料大多為短訊息 擁有大量cli...