VC實現UDP傳輸server端

2021-07-25 10:19:41 字數 2091 閱讀 3194

#include

#pragma comment(lib,"wsock32.lib")

server:

//初始化環境

wsadata wd = ;

int nstart = wsastartup(makeword(sock_ver,0),&wd)

if(0 != nstart)

if(2 != lobyte(wd.wversion))

//建立socket套接字

g_sock = socket(af_inet,sock_dgram,ipproto_udp);

if(invalid_socket == g_sock)

printf("socket 建立成功\n");

//繫結

sockaddr_in addr = ;

addr.sin_family = af_inet;

addr.sin_port = htons(point);//point為int型別的埠號

addr.sin_addr.s_addr = inet_addr(ip);//ip為char *型別的ip位址

int bind = bind(g_sock,(sockaddr *)&addr,sizeof(addr));

if(0!=bind)

int nlen = sizeof(addr);

getsockname(g_sock,(sockaddr *)&addr,&nlen);

printf("socket 繫結埠:%d成功,等待資料...\n",ntohs(addr.sin_port));

//接收資料

sockaddr_in saclient= ;

int nfromlen = sizeof(saclient);

char szbuff[1024] = ;

if(recvfrom(g_sock,szbuff,1024,0,(sockaddr *)&sockclient,&nfromlen))

//關閉套接字

closesocket(g_sock);

wsaclenup();//清理環境

UDP實現可靠傳輸

如何讓udp實現可靠傳輸 自定義通訊協議,在應用層定義一些可靠的協議,比如檢測包的順序,重複包等問題,如果沒有收到對方的ack,重新發包 udp沒有delievery garuantee,也沒有順序保證,所以如果你要求你的資料傳送與接受既要高效,又要保證有序,收包確認等,你就需要在udp協議上構建自...

UDP實現廣播傳輸

在生活中 廣播無處不在 如大街上上叫賣的商人,但是在網路中廣播是什麼樣子的呢?網路上的廣播指 由一台主機向該主機所在子網內 同乙個區域網 的所有主機傳送資料的方式。如下圖的 1 號主機廣播給 2 3 4 5 號主機傳送資料 實現廣播,離不開廣播位址,同乙個子網 區域網 的所有主機網絡卡都會接收所在網...

UDP協議及UDP實現可靠傳輸

udp基於傳輸層 16位 2位元組 16位 2位元組 16位 2位元組 16位 2位元組 udp源埠號 udp目的埠號 udp長度 udp檢驗和資料 udp的傳輸過程類似於寄信 什麼時面向資料報 應用層交給udp多長的報文,udp原樣傳送,既不會拆分,也不會合併 老實巴交的 用udp傳輸100個位元...