C++广播通信实例

2020-01-06 13:08:15王冬梅
易采站长站为您分析C++实现广播通信的方法,实例讲述了C++ socket广播通信的原理与实现方法,需要的朋友可以参考下      

本文实例讲述了C++实现广播通信的方法。。具体实现方法如下:

广播通信代码框架:

1. 协议都是:

 

复制代码 SOCKET s = ::socket(AF_INET, SOCK_DGRAM, 0);

 

2. 服务端设置选项

 

复制代码 BOOL bBroadcast = TRUE;  
::setsockopt(s, SOL_SOCKET, SO_BROADCAST, (char*)&bBroadcast, sizeof(BOOL));

 

3. 服务端向255.255.255.255 这个广播地址发内容  客户端收听就可以了

服务端代码:

 

复制代码 #include "InitSock.h"  
#include <stdio.h>  
  
VOID main()  
{  
    CInitSock initSock;  
  
    SOCKET s = ::socket(AF_INET, SOCK_DGRAM, 0);  
    //设置广播就是设置这个选项  
    BOOL bBroadcast = TRUE;  
    ::setsockopt(s, SOL_SOCKET, SO_BROADCAST, (char*)&bBroadcast, sizeof(BOOL));  
  
    //设置广播地址  
    SOCKADDR_IN bcast;  
    bcast.sin_family = AF_INET;  
    bcast.sin_port = htons(4567);  
    bcast.sin_addr.S_un.S_addr = INADDR_BROADCAST; //::inet_addr("255.255.255.255");  
    printf("begin send the data:rn");  
    char sz[] = "this is the broadcast data";  
    while(TRUE)  
    {  
        ::sendto(s, sz, sizeof(sz), 0, (sockaddr*)&bcast, sizeof(bcast));  
        ::Sleep(5000);  
    }  
}

 

客户端代码: