Linux上接收广播

在windows上接收广播比较简单:使用setsockopt结合SO_BROADAST即可。但是同样的代码不能在linux上获得同样的效果。

使用tcpdump监听,确实收到了广播包:

Linux上接收广播_第1张图片

stackoverflow上的解法:

Linux上接收广播_第2张图片 

 

修改代码,增加 INADDR_BROADCAST一项:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int main(void)
{
    int sck = socket(AF_INET,SOCK_DGRAM,0);
    char arrRcv[1024];
    if(sck >=0){
        int iOn = 1;
        std::cout<<"join brdcst"< 0){
                std::cout<

收到数据。

 

 

你可能感兴趣的:(Linux,linux,广播)