UDP廣播socket實現

2021-07-23 21:50:14 字數 1745 閱讀 8594

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;

connect_socket = socket(af_inet, sock_dgram, ipproto_udp);

if(invalid_socket == connect_socket)

// 用來繫結套接字

sockaddr_in sin;

sin.sin_family = af_inet;

sin.sin_port = htons(321);

sin.sin_addr.s_addr = 0;

// 用來從網路上的廣播位址接收資料

sockaddr_in sin_from;

// 繫結套接字

err = bind(connect_socket, (sockaddr*)&sin, sizeof(sockaddr));

if(socket_error == err)

int naddrlen = sizeof(sockaddr);

char buff[max_buf_len] = "";

int nloop = 0;

while(1)

buff[nsendsize] = '\0';

printf("recv: %s\n", buff);

}return 0;

}

#include "stdafx.h"

#include#include #include#include#pragma comment(lib,"ws2_32.lib")

using namespace std;

int _tmain(int argc, _tchar* argv)

; cout<<"input what message to send\n:"<>smsg;

//啟動socket庫,版本為2.0

wsastartup(0x0202,&wsdata);

bsocket=true;

//然後賦值給位址,用來從網路上的廣播位址接收訊息;

addrto.sin_family=af_inet;

addrto.sin_addr.s_addr=inaddr_broadcast;

addrto.sin_port=htons(9000);

bool opt=true;

//設定該套接字為廣播型別,

setsockopt(sock,sol_socket,so_broadcast,(char far *)&opt,sizeof(opt));

int nlen=sizeof(addrto);

char buf[100] = ;

while(1)

else

ret = recvfrom( sock, buf, sizeof(buf), 0, (sockaddr*)&addrto, &nlen );

if (socket_error == ret)

else

} return 0;

}

UDP實現廣播傳輸

在生活中 廣播無處不在 如大街上上叫賣的商人,但是在網路中廣播是什麼樣子的呢?網路上的廣播指 由一台主機向該主機所在子網內 同乙個區域網 的所有主機傳送資料的方式。如下圖的 1 號主機廣播給 2 3 4 5 號主機傳送資料 實現廣播,離不開廣播位址,同乙個子網 區域網 的所有主機網絡卡都會接收所在網...

socket實現UDP通訊

udp與tcp不同,是一種無連線的通訊方式,相比tcp而言更加靈活。利用socket實現udp的方式相比tcp而言也更加簡單。傳送方 1.初始化套接字 2.建立socket 3.利用sendto傳送資料 tcp是send 4.關閉socket 接收方 1.初始化套接字 2.建立socket並與本機進...

利用UDP協議實現廣播通訊

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