用UDP協議實現廣播通訊

2021-09-05 19:48:00 字數 958 閱讀 4482

udp 是user datagram protocal 的簡稱,是一種在網路上提供的無連線的傳輸協議。 

用udp通訊有以下特點: 

具體實現很簡單,但是現在在網路上很少看到這方面的**;我也參考了vckbase上的關於udp通訊的原**和一些書籍,寫了這個簡單的客戶端,接收端程式,起到拋磚引玉的作用,希望能給初次接觸udp之broadcast程式設計的同志一些參考。 

下面就讓我來說一下工作流程, 接收端的程式: 啟動socket庫,版本為2.0 wsastartup(0x0202,&wsdata);       

然後賦值給兩個位址,乙個用來繫結套接字,乙個用來從網路上的廣播位址接收訊息; ......         a.sin_family=af_inet; a.sin_addr.s_addr=0; a.sin_port=htons(5050); from.sin_family=af_inet; from.sin_addr.s_addr=inaddr_broadcast; from.sin_port=htons(5050); int fromlength=sizeof(sockaddr); //用udp初始化套接字 s=socket(af_inet,sock_dgram,0);         //設定該套接字為廣播型別, setsockopt(s,sol_socket,so_broadcast,(char far *)&optval,sizeof(optval)); //把該套接字繫結在乙個具體的位址上         bind(s,(sockaddr *)&a,sizeof(sockaddr_in)); char buf[256]; while(1)          .....       

無連線協議不用listen也不用accept,他直接從廣播位址上接收訊息,但我們必須要設定該套接字為廣播型別。 

傳送端的程式比較簡單,只要將傳送位址改為廣播位址,設定套接字為broadcast型別就行,具體實現細節請參見源**。 

在vc6。0 win 2000下執行通過。

利用UDP協議實現廣播通訊

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

用udp協議通訊示例 zz

一 緒言 server端 open a socket socket name the socket bind send and receive data sendto recvfrom close socket closesocket client端 open a socket socket sen...

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

使用udp實現廣播功能 當我們執行 時 file send 執行傳送廣播 file recv 執行接收廣播 預設埠為 9999 include include include include include include include intbroadcast send int port 2.開...