面向UDP的無連線的C 網路程式設計

2021-06-03 21:40:41 字數 1430 閱讀 2345

面向無連線的udp網路程式設計與tcp相比不用listen監聽,不需要accp接受客戶端請求

(1)伺服器端程式

#include

#include

/////客戶端程式,向伺服器端傳送請求//

/void main()

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

//以上部分是初始化部分,開啟socket庫

socket socketclient=socket(af_inet,sock_stream,0);

sockaddr_in addrsrv;

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

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);//設定要請求的伺服器的位址及埠號

connect(socketclient,(sockaddr*)&addrsrv,sizeof(sockaddr));//建立連線請求

char recvbuf[100];

recv(socketclient,recvbuf,100,0);//接收伺服器的資訊

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

send(socketclient,"this is zhangsan",strlen("this is zhangsan")+1,0);//像伺服器傳送資訊

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

wsacleanup();//關閉wsa

}(2)客戶端程式

#include

#include

//基於udp的面向無連線的客戶端程式//

///void main()

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

hibyte( wsadata.wversion ) != 2 )

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

sockaddr_in addrsrv;

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

addrsrv.sin_family=af_inet;

addrsrv.sin_port=htons(6000);//設定要請求的伺服器的 ip位址及埠資訊

sendto(sockclient,"hello world",sizeof("hello world")+1,0,(sockaddr*)&addrsrv,sizeof(sockaddr));

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

wsacleanup();//關係wsa

}

Socket程式設計基礎 無連線UDP

與面向連線的網路連線相比,無連線的網路通訊不需要在伺服器與客戶端之間建立連線。面向非連線的socket通訊是基於udp的,伺服器端不需要呼叫listen 和accept 函式來等待客戶端的連線 客戶端直接向伺服器傳送資料。1 伺服器端 1 建立socket,繫結本地ip和埠 server socke...

網路程式設計基礎 使用UDP連線

udp 服務端 code author lin yiqian created 2009 09 17 describe udp 服務端 include include pragma comment lib,ws2 32.lib void main void if lobyte wsadata.wver...

C 網路程式設計之UDP

udp簡介 udp 是user datagram protocol的簡稱,中文名是使用者資料報協議,是 一種無連線的傳輸層 協議,提供面向事務的簡單不可靠資訊傳送服務。udp是與tcp相對應的協議,它是面向非連線的協議,它不與對方連線,而直接把資料報傳送過去。面向非連線 就是正式通訊前不必與對方建立...