国产探花免费观看_亚洲丰满少妇自慰呻吟_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++程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 榆林市| 永修县| 盐池县| 孙吴县| 怀仁县| 鄂温| 星座| 湟源县| 阿克苏市| 肥乡县| 临湘市| 镇康县| 赤城县| 固原市| 奉节县| 得荣县| 淅川县| 松江区| 枝江市| 明溪县| 卓资县| 丹巴县| 阿拉善盟| 丹寨县| 大安市| 阳新县| 宜兰市| 洪泽县| 西平县| 永宁县| 连山| 七台河市| 土默特右旗| 扬州市| 富裕县| 永仁县| 凤台县| 囊谦县| 秦安县| 台州市| 麻城市|