国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++廣播通信實例

2020-05-23 14:20:12
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了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:/r/n");  
    char sz[] = "this is the broadcast data";  
    while(TRUE)  
    {  
        ::sendto(s, sz, sizeof(sz), 0, (sockaddr*)&bcast, sizeof(bcast));  
        ::Sleep(5000);  
    }  
}

 

客戶端代碼:

 

復制代碼代碼如下:
#include "InitSock.h"  
#include <stdio.h>  
  
void main()  
{  
    CInitSock initSock;  
  
    SOCKET s = ::socket(AF_INET, SOCK_DGRAM, 0);  
  
    SOCKADDR_IN sin;   
    sin.sin_family = AF_INET;  
    sin.sin_port = ::htons(4567);  
    sin.sin_addr.S_un.S_addr = INADDR_ANY;  
    if (::bind(s, (sockaddr*)&sin, sizeof(sin)) == SOCKET_ERROR)  
    {  
        printf("bind error");  
        return;  
    }  
  
    printf("begin recv the broadcast data:/r/n");  
    char sz[256] = {0};  
    SOCKADDR_IN addrRemote;  
    int nLen = sizeof(SOCKADDR_IN); //這里必須設置成這個大小   
    while (TRUE)  
    {  
        int nRet = ::recvfrom(s, sz, sizeof(sz), 0, (sockaddr*)&addrRemote, &nLen);  
        if (nRet > 0)  
        {  
            sz[nRet] = '/0';  
            printf(sz);  
        }  
  
    }  
}

 

希望本文所述對大家的C++程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 堆龙德庆县| 临汾市| 郁南县| 错那县| 雷州市| 宿迁市| 景泰县| 分宜县| 洛隆县| 时尚| 林芝县| 平顺县| 宝山区| 融水| 三河市| 通山县| 普兰店市| 万载县| 高尔夫| 樟树市| 克拉玛依市| 通州区| 赤峰市| 平武县| 天峻县| 红桥区| 尖扎县| 乌苏市| 那坡县| 保山市| 长汀县| 登封市| 文登市| 军事| 绩溪县| 东阿县| 涟源市| 和政县| 离岛区| 三亚市| 建阳市|