UDP的通訊方式

2021-08-22 02:25:51 字數 818 閱讀 4725

伺服器:

(1)新建socket

(2)繫結bind

(3)等待客戶端發資訊過來 recvfrom

(5)通訊結束之後,關閉連線。

客戶機:

(1)新建socket

(2)初始化好位址結構體

(3)直接傳送:sendto

(4)等待伺服器回信:recvfrom

(5)通訊結束之後,關閉連線

udp與tcp的通訊類似。具體操作參考上一部落格內容:

其中:sendfo函式引數配置如下:

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

第乙個引數:是前面socket函式返回的fd。代表我們要和對應的客戶端進行通訊。

第二個引數:是我們要傳送或者接收的buffer對應的位址

第三個引數:對應是我們要讀取或者寫入的資料按位元組計算的長度

第四個引數:一般都是0;

第五個引數:這個是我們要將資料傳送到**?這個就是接收方的位址。這個引數一定要指定。

第六個引數:就是前面這個位址的長度。

返回值:成功的話,返回值的大小代表實際傳送的位元組數。這個返回值,和count不一定相等。如果出錯的話,返回-1;

recvfrom引數配置詳情可在linux下通過 man recvform 來檢視

UDP協議與UDP通訊

1 udp協議 udp是無連線通訊協議,即在資料傳輸時,資料的傳送端和接收端不建立邏輯連線。簡單來說,當一台計算機向另外一台計算機傳送資料時,傳送端不會確認接收端是否存在,就會發出資料,同樣接收端在收到資料時,也不會向傳送端反饋是否收到資料。但是在使用udp協議傳送資料時,由於udp的面向無連線性,...

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簡單通訊

客戶端 include include include include include define serv port 8000 int main int argc,char ar close sockfd return 0 如何實現內網和外網的通訊 main.c udpserver create...