C C 實現基於UDP的網路程式設計

2021-06-09 11:27:33 字數 1996 閱讀 6345

在網路程式設計中,我們一般用udp或者tcp這兩種協議來進行編寫網路應用程式,那叫udp呢?

udp:udp的簡稱是user datagram protocol,中文名是使用者資料報協議,是osi 參考模型中一種無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,ietf rfc 768是udp的正式規範。

1.首先我們編寫乙個服務端應用程式**如下:

#include "winsock2.h"

#include "stdio.h"

int main()

///建立套接字失敗處理

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

hibyte( wsadata.wversion ) != 2 )

socket srvsock = socket(af_inet, sock_dgram ,0);//建立套接字

sockaddr_in srvaddr;

srvaddr.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");//繫結服務端ip位址

srvaddr.sin_family = af_inet;//服務端位址族

srvaddr.sin_port = htons(6001);//繫結服務端埠號

bind(srvsock, (sockaddr*)&srvaddr, sizeof(sockaddr));

int len = sizeof(sockaddr);

char buff[100];

sockaddr clistaddr;

recvfrom(srvsock, buff, 100, 0, (sockaddr*)&clistaddr, &len);//等待接收客戶端的請求到來

printf("%s\n",buff);//把客戶端傳送來的buff資訊列印出來

closesocket(srvsock);//關閉套接字

wsacleanup();

system("pause");

return 0;

}

ps:以上的**因為用到了ws2_32.lib裡面的東西,所以要包含一下ws2_32.lib

2.接著我們編寫乙個客戶端應用程式**如下:

#include "winsock2.h"

#include "stdio.h"

int main()

///建立套接字失敗處理

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

hibyte( wsadata.wversion ) != 2 )

socket clistsock = socket(af_inet, sock_dgram, 0);//建立套接字型別

sockaddr_in srvaddr;

srvaddr.sin_family = af_inet;//選擇位址族

srvaddr.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");//服務端的ip位址

srvaddr.sin_port = htons(6001);//服務端的埠號

sendto(clistsock, "hello",strlen("hello")+1, 0, (sockaddr*)&srvaddr,sizeof(sockaddr));//往服務端傳送"hello"訊息

closesocket(clistsock);//關閉套接字

wsacleanup();//

return 0;

}

ps:以上的**因為用到了ws2_32.lib裡面的東西,所以要包含一下ws2_32.lib

服務端總是先啟動,這樣才能等待接收到客戶端傳送的請求,所以我們先啟動服務端,接著啟動客戶端,會看到服務端接收到了來自客戶端傳送的hello資訊!

基於UDP的網路程式設計步驟

基於udp 伺服器端 1.建立乙個socket,用函式socket 2.繫結ip位址 埠資訊等到socket上,用函式bind 3.迴圈接收資料,用函式recvfrom 4.關閉網路連線 include include include include include include include ...

基於Udp的Socket網路程式設計

1.新建乙個工作空間 udp 新增兩個工程udpclient 和 udpsrv 2.在工程udpsrv中新增udpsrv.cpp檔案 如下 include include void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1...

基於UDP的socket網路程式設計

udp的網路程式設計模型較tcp簡單一些,因為udp的特點與tcp的不一樣,tcp是面向連線的,udp是無連線的。udp的服務端程式設計可總結為以下幾個步驟 1.使用socket建立通訊描述符 int socket int domain,int type,int protocol type引數應選擇...