• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++广播通信实例

C++广播通信实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++串口通信实例,c++游戏开发实例,c++实例开发,linux c++项目实例,c++程序实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C++实现广播通信的方法。分享给大家供大家参考。具体实现方法如下:

广播通信代码框架:

1. 协议都是:

2. 服务端设置选项

::setsockopt(s, SOL_SOCKET, SO_BROADCAST, (char*)&bBroadcast, sizeof(BOOL));</div>

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

服务端代码:

#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); 
    } 
}</div>

客户端代码:

#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); 
        } 
 
    } 
}</div>

希望本文所述对大家的C++程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++映像劫持后门实例分析
  • C++广播通信实例
  • C++之WSAAsyncSelect模型实例
  • C++封装IATHOOK类实例
  • C++判断pe文件实例
  • C++选择排序算法实例
  • C++冒泡排序算法实例
  • C++插入排序算法实例
  • C++虚函数表实例分析
  • C++实现位图排序实例

相关文章

  • 2017-05-28Cocos2d-x UI开发之CCControlButton控件类实例
  • 2017-05-28Java3D实例之创建空间几何模型的实现方法
  • 2017-05-28C语言中函数返回字符串的方法汇总
  • 2017-05-28使用c语言生成随机数的示例分享
  • 2017-05-28创建二叉树 二叉树如何删除节点操作教程
  • 2017-05-28C++实现“隐藏实现,开放接口”的方案
  • 2017-05-2812个关于C语言的有趣问答
  • 2017-05-28C++中关于委派(Delegates)的实现示例
  • 2017-05-28C++普通函数指针与成员函数指针实例解析
  • 2017-05-28C++实现DES加密算法实例解析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言rewind和fseek函数的用法详解(随机读写文件)
    • Ubuntu配置sublime text 3的c编译环境的具体步骤
    • 浅析C语言编程中的数组越界问题
    • c++实现的常见缓存算法和LRU
    • C++形参与实参的区别实例解析
    • 如何查看进程实际的内存占用情况详解
    • 简单分析C语言中指针数组与数组指针的区别
    • C语言枚举类型(C语言enum用法)详解
    • C语言嵌入informix基础入门示例讲解
    • C++实现单链表删除倒数第k个节点的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有