unix 網路程式設計 UDP

2021-06-21 08:02:26 字數 623 閱讀 4735

udp : user datagram protocol

程式傳送資料給 udp socket,資料先被封裝成 udp資料報,然後又被封裝成ip資料報,然後被傳送到目標方。資料是否被正確傳輸無任何保證(是否到達目標方,是否按正確順序到達,是否目標方只收到乙份資料)。

每個udp資料報都有長度,這個長度包含在資料報中傳送給目標方。

udp提供無連線的服務,udp的client和serve不用保持乙個長時間的連線。乙個udp client可以建立乙個socket發乙個資料報到乙個server,然後馬上可以用同乙個socket發資料給另乙個server。同樣乙個udp server可以用同乙個socket接收多個資料報,每乙個都來自不同的client。

output

udp沒有send buffer,通過so_sndbuf option 可以設定udp可寫到socket的資料報的最大尺寸。如要資料大於這個限制,emsgsize返回。

tcp按照規將send buffer的資料傳送出去。peer tcp必須確認資料,並且在沒有收到確認前必須存在資料的乙個copy。

udp傳送前加上8位元組的頭,然後傳送給ip。ip加上ip頭,查詢路由表,傳送資料到datalink。每個datalink都有乙個傳輸佇列,如果己滿,乙個錯誤產生。

UNIX網路程式設計學習 五 UDP程式設計

udp相比tcp是無連線的。它收發資料是通過recvfrom和sendto兩個函式。它們的原型如下 ssize t recvfrom int sockfd,void buff,size t nbytes,int flags,struct sockaddr from,socklen t addrlen...

Unix網路程式設計 傳輸層 TCP和UDP

第二章 傳輸層 tcp udp和sctp 1 使用者資料報協議 udp 1 描述 應用程式往乙個udp套接字寫入一條訊息,該訊息隨後被封裝到乙個udp資料報,又被封裝到乙個ip資料報,然後發往目的地 2 特點 缺乏可靠性 資料報到達目的地,但是檢驗和檢測有錯誤,或者該資料報在網路傳輸被丟棄,不會自動...

unix環境程式設計 UDP通訊

一 udp伺服器 程式設計的端一般步驟是 1 用函式socket 建立socket 第二個引數為sock dgram 2 用函式bind 繫結ip 位址 埠資訊 3 用函式recvfrom 接收資料 4 關閉網路連線 udp客戶端 程式設計的一般步驟是 1 建立乙個socket 用函式socket ...