Linux基礎 UDP通訊講解和實現案例

2021-10-24 04:55:51 字數 1233 閱讀 2332

實現案例:

udp是無連線的通訊協議,準備好位址之後可以直接傳送或接收資料。

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);

功能:傳送資料

sockfd:傳送者的socket描述符

buf:待傳送的資料

len:資料的長度

flags:一般寫0即可。

dest_addr:目標位址

addrlen:位址的長度

返回值:成功傳送的資料的位元組數

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);

功能:接收資料

sockfd:接收者的socket描述符

buf:儲存資料的緩衝區

len:緩衝區的長度

flags:一般寫0即可

src_addr:儲存傳送者的位址

addrlen:既是輸入(當前系統位址的位元組數)也是輸出(獲取傳送者位址的位元組數),儲存傳送者位址的長度。

返回值:成功接收到的資料的位元組數。

udp網路通訊程式設計模型:

計算機s --------------------------------計算機c

建立socket物件 ----------------------建立socket物件

準備通訊位址 ------------------------準備通訊位址(s的位址)

繫結socket物件和位址

接收/返回資料 -----------------------傳送/接收資料

關閉socket物件 ---------------------關閉socket物件

UDP通訊基礎

udp通訊 接收 1.int sock socket af inet,sock dgram,0 af是address family位址家族,有ipv4 ipv6。type是udp。protocol是0,讓系統自動 選擇。socket成功返回0 2.int i bind sock,sockaddr s...

UDP及TCP通訊對比講解

特點 tcpudp 連線性面向連線 面向無連線 可靠性可靠 不可靠傳輸效率慢快 傳輸模式 資料流資料報 伺服器1.建立socket套接字 2.繫結套接字到ip和埠 3.監聽 listen 將套接字設定為監聽模式 4.接收連線 accept 5.傳送 接收資料 6.關閉socket套接字。客戶機1.建...

Linux和Windows間的UDP通訊

udp user datagram protocol 的中文叫使用者資料報協議,屬於傳輸層。udp是面向非連線的協議,它不與對方建立連線,而是直接把我要發的資料報發給對方。所以udp適用於一次傳輸資料量很少 對可靠性要求不高的或對實時性要求高的應用場景。正因為udp無需建立類如三次握手的連線,而使得...