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...