使用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...