udp广播收到重复包
测试环境中普通单网卡/多网卡不会存在问题,当在多网卡聚合的节点上虚拟机(虚拟机分配的是单网卡)测试的时候,就会收到重复包(两条,应该是因为只是两个网卡聚合)
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广播收到重复包相关推荐
- UDP广播包发送与接收
1.数据发送端 #include "stdafx.h" #include <WinSock2.h> #include <stdio.h> #include ...
- Android 通过局域网udp广播自动建立socket连接
Android开发中经常会用到socket通讯.由于项目需要,最近研究了一下这方面的知识. 需求是想通过wifi实现android移动设备和android平台的电视之间的文件传输与控制. 毫无疑问这中 ...
- UDP 分片 与 丢包,UDP 真的比 TCP 高效吗?
关注.星标公众号,直达精彩内容 素材来源:https://blog.csdn.net/LearnLHC/article/details/115268028 整理:技术让梦想更伟大 | 李肖遥 一.UD ...
- Netty的UDP广播发送与接收
想要的逻辑是这样的: A向局域网内发送广播消息messageA: B收到了messageA并直接使用既有的session或channel把需要回复的消息write回来就行了. 自己尝试了一下,记载一下 ...
- UDP 分片 与 丢包,UDP 真的比 TCP 高效吗?UDP 的应用场景
目录 一.UDP 报文格式 二.UDP 分片 1.UDP 有发送缓存区吗? 1>.先说结论: 2>.逐步分析: 2.UDP 分片 1>.UDP 包最佳传输大小 2>.分片问题 ...
- C# 实现udp广播收集局域网类所有设备信息
一个简单好理解的例子,复制过去就能用,能看到效果 首先对功能的思考,他怎么去实现 1.制定udp广播的端口(如果收发用同一个端口就会一直接收到自己给自己广播的消息) 2.启动后向局域网广播约定的字符串 ...
- esp8266 接收udp广播_ESP8266的UDP广播
先来看看ESP8266的UDP通讯,主要看它的广播模式.说这个,需要先了解UDP通讯是什么? 说到UDP,伴随而来的还有另一个东西,就是TCP.这里不说定义,只说应用.简单来说,这两者都是网络 最主要 ...
- ESP8266_11 ESP8266的UDP广播
ESP8266_01搭建开发环境 ESP8266_02程序的编译与下载 ESP8266_03SDK与Makefile的基本用法 ESP8266_04管脚控制与软件定时器 ESP8266_05 ESP8 ...
- linux socket UDP广播
概述: 网络上的广播指:由一台主机向该主机所在子网内(同一个局域网)的所有主机发送数据的方式 实现广播,离不开广播地址,同一个子网(局域网)的所有主机网卡都会接收所在网段广播地址的数据包.广播地址应用 ...
- [C# 网络编程系列]专题七:UDP编程补充——UDP广播程序的实现
上次因为时间的关系,所以把上一个专题遗留下的一个问题在本专题中和大家分享下,本专题主要介绍下如何实现UDP广播的程序,下面就直接介绍实现过程和代码以及运行的结果. 一.程序实现 UDP广播程序的实现代 ...
最新文章
- php点号的意思,[PHP] - 逗号和点号的区别
- 数据结构 — 哈希表
- Java 转型问题(向上转型和向下转型)
- .h头文件 .lib库文件 .dll动态链接库文件关系
- Python 每次处理一个字符
- mysql原生库_Mysql数据库的一些简单原生sql语句
- mysql聚合函数需要groupby_sql 聚合函数和group by 联合使用
- 暴涨2000+? 2021年软件测试平均薪资出来了,我坐不住了
- RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
- 人工智能技术发展必须遵循的基本伦理原则
- Linux系统启动简单流程:
- Geek(一个好用的强力卸载软件工具,包括注册表所有依赖项全部清理掉)
- php5.3.3 xhprof,给CentOS6.3 + PHP5.3 安装PHP性能测试工具 XHProf-0.9.2
- HBuilderX搭建Vue项目
- C语言正则表达式详解 regcomp() regexec() regfree()详解
- 无人机加入海上搜救;信息检索一站式开发包;JAX 实现的模块化强化学习库;动物园实际场景多视数据集;前沿论文 | ShowMeAI资讯日报
- 三星S11首曝光/2019款iPhone预测价格出炉
- JavaScript摘录(二)
- 【openjudge】金银岛
- 会议平板安卓系统下不能使用视频会议功能?要选配摄像头麦克风?