测试环境中普通单网卡/多网卡不会存在问题,当在多网卡聚合的节点上虚拟机(虚拟机分配的是单网卡)测试的时候,就会收到重复包(两条,应该是因为只是两个网卡聚合)

1. 普通单网卡/多网卡:

[root@client apps]# ./m client b
Announce:  255.255.255.255:12345
[root@server tmp]# ./m server
Received request from  192.168.0.76:36974  i  0
hello sir
^C
[root@server58 tmp]# ifconfig
br0       Link encap:Ethernet  HWaddr 00:30:48:FD:A3:11  inet addr:192.168.0.58  Bcast:192.168.255.255  Mask:255.255.0.0inet6 addr: fe80::88de:c5ff:fe47:d65e/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:123573262 errors:0 dropped:0 overruns:0 frame:0TX packets:8604390 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:7772234332 (7.2 GiB)  TX bytes:759119584 (723.9 MiB)br1       Link encap:Ethernet  HWaddr 00:30:48:FD:A3:10  inet addr:192.168.0.167  Bcast:192.168.255.255  Mask:255.255.0.0inet6 addr: fe80::230:48ff:fefd:a310/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:11 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:0 (0.0 b)  TX bytes:746 (746.0 b)

2. 聚合的虚拟机测试:(具体聚合方式不清楚)

[root@client apps]# ./m client b
Announce:  255.255.255.255:12345
[root@cnode100 apps]# ./m server
Received request from  192.168.0.76:34983  i  0
hello sir
Received request from  192.168.0.76:34983  i  1
hello sir

3. 以下是测试程序:

package mainimport ("flag""fmt""net""time"
)func main() {flag.Parse()if flag.Arg(0) == "client" {b := falseif flag.Arg(1) == "b" {b = true}Client(b)} else if flag.Arg(0) == "server" {Server()}
}func Server() {udpaddr, err := net.ResolveUDPAddr("udp", "0.0.0.0:12345")if err != nil {fmt.Println(err)return}listen, err := net.ListenUDP("udp", udpaddr)if err != nil {fmt.Println(err)return}defer listen.Close()i := 0for {data := make([]byte, 100)n, rAddr, err := listen.ReadFromUDP(data)if err != nil {fmt.Println("Read: ", err)continue}fmt.Println("Received request from ", rAddr.String(), " i ", i)fmt.Println(string(data[:n]))i++}
}
func Client(b bool) {a := "192.168.18.100"if b {a = "255.255.255.255"}addr := fmt.Sprintf("%s:%d", a, 12345)fmt.Println("Announce: ", addr)radd, err := net.ResolveUDPAddr("udp", addr)if err != nil {fmt.Println("Announce fail:", err)return}udp, err := net.DialUDP("udp", nil, radd)if err != nil {fmt.Println("Announce fail:", err)} else {udp.SetDeadline(time.Now().Add(time.Second * 3))_, err = udp.Write([]byte("hello sir"))if err != nil {fmt.Println("Announce fail:", err)}}udp.Close()
}

转载于:https://www.cnblogs.com/fanxiaowei/p/11205260.html

udp广播收到重复包相关推荐

  1. UDP广播包发送与接收

    1.数据发送端 #include "stdafx.h" #include <WinSock2.h> #include <stdio.h> #include ...

  2. Android 通过局域网udp广播自动建立socket连接

    Android开发中经常会用到socket通讯.由于项目需要,最近研究了一下这方面的知识. 需求是想通过wifi实现android移动设备和android平台的电视之间的文件传输与控制. 毫无疑问这中 ...

  3. UDP 分片 与 丢包,UDP 真的比 TCP 高效吗?

    关注.星标公众号,直达精彩内容 素材来源:https://blog.csdn.net/LearnLHC/article/details/115268028 整理:技术让梦想更伟大 | 李肖遥 一.UD ...

  4. Netty的UDP广播发送与接收

    想要的逻辑是这样的: A向局域网内发送广播消息messageA: B收到了messageA并直接使用既有的session或channel把需要回复的消息write回来就行了. 自己尝试了一下,记载一下 ...

  5. UDP 分片 与 丢包,UDP 真的比 TCP 高效吗?UDP 的应用场景

    目录 一.UDP 报文格式 二.UDP 分片 1.UDP 有发送缓存区吗? 1>.先说结论: 2>.逐步分析: 2.UDP 分片 1>.UDP 包最佳传输大小 2>.分片问题 ...

  6. C# 实现udp广播收集局域网类所有设备信息

    一个简单好理解的例子,复制过去就能用,能看到效果 首先对功能的思考,他怎么去实现 1.制定udp广播的端口(如果收发用同一个端口就会一直接收到自己给自己广播的消息) 2.启动后向局域网广播约定的字符串 ...

  7. esp8266 接收udp广播_ESP8266的UDP广播

    先来看看ESP8266的UDP通讯,主要看它的广播模式.说这个,需要先了解UDP通讯是什么? 说到UDP,伴随而来的还有另一个东西,就是TCP.这里不说定义,只说应用.简单来说,这两者都是网络 最主要 ...

  8. ESP8266_11 ESP8266的UDP广播

    ESP8266_01搭建开发环境 ESP8266_02程序的编译与下载 ESP8266_03SDK与Makefile的基本用法 ESP8266_04管脚控制与软件定时器 ESP8266_05 ESP8 ...

  9. linux socket UDP广播

    概述: 网络上的广播指:由一台主机向该主机所在子网内(同一个局域网)的所有主机发送数据的方式 实现广播,离不开广播地址,同一个子网(局域网)的所有主机网卡都会接收所在网段广播地址的数据包.广播地址应用 ...

  10. [C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现

    上次因为时间的关系,所以把上一个专题遗留下的一个问题在本专题中和大家分享下,本专题主要介绍下如何实现UDP广播的程序,下面就直接介绍实现过程和代码以及运行的结果. 一.程序实现 UDP广播程序的实现代 ...

最新文章

  1. php点号的意思,[PHP] - 逗号和点号的区别
  2. 数据结构 — 哈希表
  3. Java 转型问题(向上转型和向下转型)
  4. .h头文件 .lib库文件 .dll动态链接库文件关系
  5. Python 每次处理一个字符
  6. mysql原生库_Mysql数据库的一些简单原生sql语句
  7. mysql聚合函数需要groupby_sql 聚合函数和group by 联合使用
  8. 暴涨2000+? 2021年软件测试平均薪资出来了,我坐不住了
  9. RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
  10. 人工智能技术发展必须遵循的基本伦理原则
  11. Linux系统启动简单流程:
  12. Geek(一个好用的强力卸载软件工具,包括注册表所有依赖项全部清理掉)
  13. php5.3.3 xhprof,给CentOS6.3 + PHP5.3 安装PHP性能测试工具 XHProf-0.9.2
  14. HBuilderX搭建Vue项目
  15. C语言正则表达式详解 regcomp() regexec() regfree()详解
  16. 无人机加入海上搜救;信息检索一站式开发包;JAX 实现的模块化强化学习库;动物园实际场景多视数据集;前沿论文 | ShowMeAI资讯日报
  17. 三星S11首曝光/2019款iPhone预测价格出炉
  18. JavaScript摘录(二)
  19. 【openjudge】金银岛
  20. 会议平板安卓系统下不能使用视频会议功能?要选配摄像头麦克风?

热门文章

  1. 设计模式之——单例模式
  2. 4.2线程局部变量(Thread-Local Variables)
  3. Bean获取Spring容器
  4. 【渝粤教育】21秋期末考试基础会计10258k2
  5. 推荐系统 | 信息过载的大数据时代,大数据推荐系统如何搭建,趋势何方
  6. Latex初学者指南
  7. scanf 与 scanf_s
  8. BZOJ1283 序列(费用流)
  9. [贪心+模拟] zoj 3829 Known Notation
  10. [转]SAP行业知识Qamp;A一览表