c語言實現廣播(udp協議)

2021-10-09 09:42:05 字數 2407 閱讀 5591

使用udp實現廣播功能:當我們執行**時:

./file send----》執行傳送廣播**

./file recv----》執行接收廣播**

預設埠為:9999

*/#include

#include

#include

#include

#include

#include

#include

intbroadcast_send

(int port)

//2.開啟廣播

int on=1;

int ret =

setsockopt

(sockfd, sol_socket, so_broadcast,

&on,

sizeof

(on));

if(ret <0)

//3.傳送資料到廣播位址

char buffer=

"hello world"

;struct sockaddr_in dest_addr;

memset

(&dest_addr,0,

sizeof

(dest_addr));

dest_addr.sin_family = af_inet;

//位址族ipv4

dest_addr.sin_port =

htons

(port)

;//設定埠號

dest_addr.sin_addr.s_addr =

inet_addr

("192.168.19.255");

//設定廣播位址

//把資料發往廣播位址

ret =

sendto

(sockfd, buffer,

sizeof

(buffer),0

,(struct sockaddr*

)&dest_addr,

sizeof

(dest_addr));

if(ret <0)

err:

//4.關閉套接字

close

(sockfd)

;return0;

}int

broadcast_recv

(int port)

//設定埠位址復用

int on=1;

int rt =

setsockopt

(sockfd, sol_socket, so_reuseaddr,

&on,

sizeof

(on));

if(rt <0)

//2.繫結位址

struct sockaddr_in src_addr;

memset

(&src_addr,0,

sizeof

(src_addr));

src_addr.sin_family = af_inet;

//位址族ipv4

src_addr.sin_port =

htons

(port)

;//設定埠號

src_addr.sin_addr.s_addr =

htonl

(inaddr_any)

;int ret =

bind

(sockfd,

(struct sockaddr*

)&src_addr,

sizeof

(src_addr));

if(ret <0)

//3.接收資料

char buffer[

128]=;

struct sockaddr_in sendaddr;

socklen_t len =

sizeof

(sendaddr)

; ret =

recvfrom

(sockfd, buffer,

sizeof

(buffer),0

,(struct sockaddr*

)&sendaddr,

&len);if

(ret <0)

printf

("接到資料:%s\n"

, buffer)

;recverr:

//4.關閉套接字

close

(sockfd)

;return0;

}//主函式入口

intmain

(int argc,

char

**ar**)

利用UDP協議實現廣播通訊

在開發應用程式時,如果需要向網路中的所有使用者傳送資訊,可以採用udp協議進行廣播通訊,而不用一一向每個使用者傳送訊息。在程式中使用廣播通訊非常簡單,在建立套接字後,呼叫 setsockopt 方法使套接字具有so broadcast選項。然後再傳送訊息時,降低至設定為廣播形式。建立套接字 m ps...

用UDP協議實現廣播通訊

udp 是user datagram protocal 的簡稱,是一種在網路上提供的無連線的傳輸協議。用udp通訊有以下特點 具體實現很簡單,但是現在在網路上很少看到這方面的 我也參考了vckbase上的關於udp通訊的原 和一些書籍,寫了這個簡單的客戶端,接收端程式,起到拋磚引玉的作用,希望能給初...

UDP廣播socket實現

udp廣播 const int max buf len 255 int main int argc,char argv if lobyte wsadata.wversion 2 hibyte wsadata.wversion 2 建立socket socket connect socket conn...