網路基礎篇 socket網路程式設計之UDP通訊

2021-07-15 15:53:13 字數 1282 閱讀 3223

udp和tcp的區別:

udp是無連線的、不可靠的資料協議報,而tcp是面向連線的,提供可靠的位元組流。然而,有些情況更適合用udp而不是tcp。有些流行的應用程式就是用udp實現的:dns(網域名稱系統)、nfs(網路檔案系統)和snmp(簡單網路管理協議)還有就是qq也是使用的udp。

udp和tcp通訊模型類似,只是不需要連線,具體過程如下。

1、建立socket

建立乙個udp協議的套接字socket,此時socket的第二個引數不能傳遞sock_stream,而是傳遞sock_dgram,如建立乙個基於ipv4位址族的udp套接字

sockfd = socket(af_inet,sock_dgram,0);

2、資料收發

recvfrom和sendto通常用於udp協議通訊的i/o

函式原型如下:

#include

ssize_t recvfrom(int sockfd,void* buff,size_t nbytes,int flags,struct sockaddr* from,socklen_t* addrlen);

ssize_t sendto(int sockfd,const

void* buff,size_t nbytes,const

struct sockaddr* to,socklen_t addrlen);

socket_t 相當於int ,這裡用這個名字為的是提高**的自說明性。

sockfd:標識乙個已連線套介面的描述字。

buf:接收資料緩衝區。

len:緩衝區長度。

flags:呼叫操作方式。是以下乙個或者多個標誌的組合體,可通過or操作連在一起:

from:(可選)指標,指向裝有源位址的緩衝區。

addrlen:(可選)指標,指向from緩衝區長度值。

伺服器:

客戶端:

執行結果:

socket網路程式設計基礎

伺服器與客戶端 p94 p98先學習基礎 再學習socket程式設計 參考socket,也叫套接字,描述了計算機是ip位址和埠,電腦程式之間採用socket進行通訊。socket把複雜的tcp ip協議族隱藏在介面後面,方便使用。tcp提供流和資料報兩種通訊方式,所以套接字也分為流套接字和資料報套接...

網路基礎 Socket程式設計

tpc的服務端要先監聽乙個埠,一般是先呼叫bind函式,給這個soket賦予乙個ip位址和埠。當服務端有了ip和埠號,就可以呼叫listen函式進行監聽。這時候客戶端就可以發起連線了。在作業系統中,為每個socket維護兩個佇列。乙個是已經建立了連線的佇列,三次握手已完畢,處於established...

網路基礎之 網路基礎,socket程式設計

1 什麼是socket 網路基礎 socket 2 為何要學習socket程式設計 基於socket開發乙個c s或者b s結構的軟體 client 網路 server browser 網路 server 3 如何基於socket程式設計 網路 網路是什麼 底層的物理連線介質 網際網路通訊協議 os...