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

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

C++廣播通信實例

2020-01-26 15:13:13
字體:
來源:轉載
供稿:網友

本文實例講述了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++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘阴县| 钟山县| 黄龙县| 芷江| 文成县| 荣成市| 临洮县| 张家界市| 陕西省| 成安县| 岑巩县| 麻栗坡县| 阳山县| 磐安县| 元氏县| 和平县| 芮城县| 手游| 湖南省| 大埔区| 石城县| 天全县| 巩留县| 黄浦区| 徐闻县| 正安县| 彭州市| 余江县| 建德市| 邮箱| 鹤庆县| 巴东县| 华阴市| 肥城市| 北辰区| 云阳县| 彭阳县| 商都县| 安远县| 汝南县| 城固县|