Visual C 設計UDP協議通訊示例

2021-06-03 11:45:32 字數 1904 閱讀 7989

一、緒言

udp是一種面向非連線,不可靠的通訊協議,相對於tcp

server端: open a socket(socket)--->

;name

the socket(bind)--->send and receive

data

(sendto

recvfrom)--->close socket(closesocket)

client端: open a socket(socket)---------------------------->send and receive data(sendto recvfrom)--->close socket(closesocket)

server端無需listen,client端無需connect,因此udp中server和client的區別相對較模糊。只要呼叫sendto和recvfrom就可以給指定的位址收發資料,但並不保證收發的資料的完整性和可靠性。

三、示例

udpserver主要**:

#include #include #pragma comment(lib,"ws2_32.lib")

void main()

if (lobyte(wsadata.wversion)!=1 ||

hibyte(wsadata.wversion)!=1)

socket socksrv=socket(af_inet,sock_dgram,0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr=htonl(inaddr_any);

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);

bind(socksrv,(sockaddr*)&addrsrv,sizeof(sockaddr));

sockaddr_in addrclient;

int len=sizeof(sockaddr);

char recvbuf[100];

recvfrom(socksrv,recvbuf,100,0,(sockaddr*)&addrclient,&len);

printf("%s\n",recvbuf);

closesocket(socksrv);

wsacleanup();

}

client端**:

#include #include #pragma comment(lib,"ws2_32.lib")

void main()

if (lobyte(wsadata.wversion)!=1 ||

hibyte(wsadata.wversion)!=1)

socket sockclient=socket(af_inet,sock_dgram,0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr=inet_addr("192.168.58.169");

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);

sendto(sockclient,"hello",strlen("hello")+1,0,

(sockaddr*)&addrsrv,sizeof(sockaddr));

closesocket(sockclient);

wsacleanup();

}

四、結束語

udp通訊比tcp簡單了很多,在資料可靠性不是很高的情況下,有使用的價值

Visual C 設計UDP協議通訊示例

一 緒言 udp是一種面向非連線,不可靠的通訊協議,相對於 tcp二 udp的通訊過程 server端 open a socket socket name the socket bind send and receive data sendto recvfrom close socket close...

全面掌握VisualC 實現UDP協議 一

一.走進udp協議 udp user datagram protocol 協議就是 使用者資料報協議 它是一種無連線的協議,無連線主要是和tcp協議相比較的。我們知道當利用tcp協議傳送資料的時候,首先必須先建立連線 也就是所謂的握手 才可以傳輸資料。而當計算機利用udp協議進行資料傳輸的時候,傳送...

TCP協議 UDP協議

tcp是面向連線的傳輸層的協議,它在程序互動時,會建立乙個鏈結,然後在傳輸資料之後會取消連線,tcp的鏈結是虛連線。每一條tcp連線只能有兩個端點,只能是點對點的資料鏈結,不能進行廣播。tcp提供可靠的按時交付的 無差錯的 不重複的 按序到達的服務 可靠有序 不丟不重 tcp提供全雙工通訊 傳送快取...