UDP套接字程式設計

2021-08-05 23:45:00 字數 1465 閱讀 9875

udp是使用者資料報協議,與tcp協議一樣,在網路中處理資料報,是一種無連線的傳輸層協議,具有不可靠性,udp有不提供資料報分組、組裝和不能對資料報進行排序的缺點,也就是說,當報文傳送之後,是無法得知其是否安全完整到達的。

基於udp的客戶端伺服器:

伺服器:

#include 

#include

#include

#include

#include

#include

void usage(char* proc)

int main(int argc,char* argv)

int sock=socket(af_inet,sock_dgram,0);

if(sock<0)

struct sockaddr_in local;

local.sin_family=af_inet;

local.sin_port=htons(atoi(argv[2]));

local.sin_addr.s_addr=inet_addr(argv[1]);

if(bind(sock,(struct sockaddr*)&local,sizeof(local))<0)

printf("wait client connect...\n");

char buf[1024];

struct sockaddr_in client;

socklen_t len=sizeof(client);

while(1)

else

if(s==0)

else

}close(sock);

return

0;}

客戶端:

#include 

#include

#include

#include

#include

#include

#include

void usage(char* proc)

int main(int argc,char* argv)

int sock = socket(af_inet,sock_dgram,0);

if(sock < 0)

struct sockaddr_in server;

server.sin_family = af_inet;

server.sin_port = htons(atoi(argv[2]));

server.sin_addr.s_addr = inet_addr(argv[1]);

char buf[1024];

socklen_t len=sizeof(server);

while(1)

else

}close(sock);

return

0;}

UDP套接字程式設計

與面向連線的協議相比,面向無連線協議極為不同。其中乙個重要的不同點就是客戶端與伺服器之間不必建立連線。對於udp套接字程式設計而言,伺服器建立套接字後,呼叫bind 函式將套接字與準備接收資料的介面繫結在一起。和tcp程式設計不同的是,應用程式不必呼叫listen 和accept 函式等待客戶端的連...

基本UDP套接字程式設計

udp函式呼叫為 客戶不與伺服器建立連線,而是只管使用sendto函式給伺服器傳送資料報,其中必須指定目的地的位址為引數。類似地,伺服器不接受來客戶的連線,而是只管呼叫recvfrom函式,等待來自某個客戶的資料到達,recvfrom將與所接收的資料一道返回客戶的協議位址,因此可以把響應傳送給正確的...

UDP網路程式設計套接字

ip協議有兩個版本,乙個是ipv4,乙個是ipv6。ip位址是在ip協議中,用來標識網路中不同的主機的位址。對於ipv4來說,ip位址是乙個4位元組,32位的整數。在資料報頭部的兩個ip位址,乙個叫源ip位址,乙個叫目的ip位址 埠號port 必須是眾所周知的,並且不能隨意修改 埠號是乙個2個位元組...