基於UDP的socket程式設計

2021-06-15 22:26:19 字數 1646 閱讀 6199

轉貼自:  

udpsocket

sockets(套接字)

程式設計有三種,流式套接字(sock_stream),

資料報套接字(sock_dgram),原始套接字(sock_raw);基於udp的socket程式設計是採用的資料報套接字。

在這個程式中,將兩個工程新增到乙個工作區。同時還要鏈結乙個ws2_32.lib的庫檔案。

伺服器端程式設計的步驟:

1:載入套接字型檔,建立套接字(wsastartup()/socket());

3:等待和接收資料(sendto()/recvfrom());

4:關閉套接字,關閉

載入的套接字型檔(closesocket()/wsacleanup())。

伺服器端**如下:

#include

#include

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(7003);

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

char recvbuf[50];

sockaddr addrclient;

int len=sizeof(sockaddr);

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

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

closesocket(socksrv);

wsacleanup();

}對於基於udp的socket

客戶端來說,要進行如下步驟:

1:建立乙個

套接字(socket);

2:向伺服器傳送資料(sendto);

3:關閉套接字;

**如下:

#include

#include

void main()

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

hibyte( wsadata.wversion ) != 2 )

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

sockaddr_in addrclient;

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

addrclient.sin_family=af_inet;

addrclient.sin_port=htons(8889);

sockaddr_in addrsrv;

sendto(sockclient,"hi",3,0,(sockaddr*)&addrclient,sizeof(sockaddr));

}

基於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程式設計

一 socket概述 1.socket一般被稱為 套接字 網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端就叫做socket。2.建立網路通訊連線至少需要乙個埠號 socket socket利用網路之間的通訊設施實現程序通訊,但它對通訊設施的細節不關心,只要通訊設施能夠提供足夠的...

基於UDP的socket網路程式設計

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