1、数据发送端

#include "stdafx.h"
#include <WinSock2.h>
#include <stdio.h>
#include <iostream>
using namespace std;#pragma comment(lib, "ws2_32.lib")   #define SENDPORT    22222
#define RECVPORT    11111
#define GET_HOST_COMMAND "GetInfor"int _tmain(int argc, _TCHAR* argv[])
{int sockfd;WSADATA wsdata;/*启动SOCKET库,版本为2.0*/WORD    wVer = MAKEWORD(2, 0);if (0 != WSAStartup(wVer, &wsdata)){printf("Not Support Socket2.0!");return -1;}/*socket创建*/if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0){printf("socket creater failed!");return  -1;}/*开启广播*/int on = 1;if (setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (char*)&on, sizeof(on)) < 0){printf("setsockopt failed!");closesocket(sockfd);return -1;}/*接收地址设定*/struct sockaddr_in src_addr;memset(&src_addr, 0, sizeof(src_addr));src_addr.sin_family = AF_INET;src_addr.sin_port = htons(RECVPORT);src_addr.sin_addr.s_addr = htonl(INADDR_ANY);if (bind(sockfd, (struct sockaddr*)&src_addr, sizeof(src_addr)) < 0){printf("bind failed!");closesocket(sockfd);return -1;}/*发送数据到广播地址*/char sendbuffer[] = "UDP content send Test!";struct sockaddr_in dest_addr;memset(&dest_addr, 0, sizeof(dest_addr));dest_addr.sin_family = AF_INET;dest_addr.sin_port = htons(SENDPORT);dest_addr.sin_addr.s_addr = htonl(INADDR_BROADCAST);/*数据接收*/char Recvbuffer[128] = { 0 };struct sockaddr_in sendaddr;int len = sizeof(sendaddr);if (recvfrom(sockfd, Recvbuffer, sizeof(Recvbuffer), 0, (struct sockaddr*)&sendaddr, &len) < 0){printf("recvfrom failed!");closesocket(sockfd);return -1;}printf("接到数据:%s\n", Recvbuffer);if (strcmp(Recvbuffer, GET_HOST_COMMAND) == 0){/*把数据发往广播地址*/for (int i = 0; i < 5; i++){if (sendto(sockfd, sendbuffer, sizeof(sendbuffer), 0, (struct sockaddr*)&dest_addr, sizeof(dest_addr)) < 0){printf("sendto failed!");closesocket(sockfd);return -1;}printf("发送数据:%s\n", sendbuffer);}}closesocket(sockfd);system("pause");return 0;
}

2、遇到问题:

windows端本机电脑可以接收udp广播包,但是无法发送广播包,最后定位原因为虚拟机网卡导致广播包发送不出去!

UDP广播包发送与接收相关推荐

  1. Udp广播的发送和接收(iOS + AsyncUdpSocket)下篇

    接上篇C#的Udp广播的发送和接收 http://www.cnblogs.com/JimmyBright/p/4637090.html ios中使用AsyncUdpSocket处理Udp的消息非常方便 ...

  2. 解决go udp广播包无法接收

    1.虚拟机网卡导致广播包发送不出去或接收不到问题 2.防火墙开启限制udp包接收发送

  3. Linux内核网络协议栈:udp数据包发送(源码解读)

    <监视和调整Linux网络协议栈:接收数据> <监控和调整Linux网络协议栈的图解指南:接收数据> <Linux网络 - 数据包的接收过程> <Linux网 ...

  4. socket简介和udp网络程序-发送、接收数据

    socket简介 不同电脑上的进程之间如何通信 首要解决的问题是如何唯一标识一个进程,否则通信无从谈起! 在1台电脑上可以通过进程号(PID)来唯一标识一个进程,但是在网络中这是行不通的. 其实TCP ...

  5. 使用 UDP 数据包发送消息

    使用 UDP 数据包发送短的文本消息实现是很简单的并且提供可一个非常轻量级的消息传递通道.但是这种模式有很大的缺陷,就是不保证的数据的可靠性,有可能会存在丢包的情况,甚至严重的情况就是服务器不可用的时 ...

  6. 分析udp数据报_Linux内核网络udp数据包发送(二)——UDP协议层分析

    1. 前言 本文分享了Linux内核网络数据包发送在UDP协议层的处理,主要分析了udp_sendmsg和udp_send_skb函数,并分享了UDP层的数据统计和监控以及socket发送队列大小的调 ...

  7. Linux内核网络udp数据包发送(二)——UDP协议层分析

    1. 前言 本文分享了Linux内核网络数据包发送在UDP协议层的处理,主要分析了udp_sendmsg和udp_send_skb函数,并分享了UDP层的数据统计和监控以及socket发送队列大小的调 ...

  8. Linux内核网络UDP数据包发送(三)——IP协议层分析

    1. 前言 Linux内核网络 UDP 协议层通过调用 ip_send_skb 将 skb 交给 IP 协议层,本文通过分析内核 IP 协议层的关键函数来分享内核数据包发送在 IP 协议层的处理,并分 ...

  9. Android源码分析之广播的发送和接收流程

    说明:本文是基于Android6.0源码来分析的 概要 我的理解是,Android中的广播可以看为一种消息机制,用来在一定的条件下触发一些操纵,比如:网络状态的改变,熄屏,亮屏等等Android系统都 ...

最新文章

  1. grails 环境找不到java_home
  2. 封装JDBC事务操作,执行存储过程测试
  3. 详细解读神经网络十大误解,再也不会弄错它的事情原理
  4. JSF 2.0/2.1 生命周期简介
  5. c语言程序设计实践课选题,c语言程序设计实践实验题目
  6. Centos下lnmp编译安装详细过程
  7. java中如何将数字转换成字符串(int转换为string)
  8. Winsock编程补遗
  9. core微型计算机,UPC-CHT01 | 专业创客微型计算机板_UP Core - AAEON
  10. Ext3 -- Form 实例。 用来migrate file 数据到DB用的
  11. java实验原理_java实验报告实验原理.doc
  12. 使用软件测试工具WinRunner的几点建议
  13. 入门小白不到三个月就学会了用maya软件如何制作动画
  14. 眨眼网杨莹,能写代码能玩时尚的美女CEO-搜狐
  15. 【隔离的CAN通信接口-1Mbps】
  16. PyTorch模型训练实战技巧,突破速度瓶颈
  17. (转) 咖啡猫的至理名言
  18. mysql表分区备份_ZRM 2.1:备份MySQL分区表
  19. 计算机主机显卡安装,电脑显卡安装的图文教程
  20. ad18放置标尺(测量)

热门文章

  1. 经典算法之辗转相除法(欧几里得定理)
  2. nginx日志分析工具-goaccess
  3. 5行代码带你爬取 2021福布斯排行榜,看看中国都有谁上榜?
  4. MySQL_explain关键字分析查询语句
  5. 福建师范大学2022年2月课程考试《心理学》作业考核试题
  6. IBM停止招聘可被AI取代的职位;三星禁止员工使用ChatGPT;印象笔记官方AI免费课;清华美院AI绘画的高质量分享 | ShowMeAI日报
  7. element-ui 使用分享
  8. CANOpen系列教程07_CANOpen协议概述
  9. 两个向量的点乘和叉乘怎么算_向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读...
  10. DIV+CSS建设网页简单的6个步骤