随笔十二、UDP发送twice的问题

本次内容与泰山派开发板无关,纯粹是编程时遇到的问题。

问题

现象描述:在泰山派开发板测试UDP组播功能,开发板作为发送端时,sendto()函数向远端组播地址发送数据,wireshark观察到每次sendto后,过滤器记录了2条消息。消息中包含了life信号,可以确认发送端确实只发送了1次,但远端接收到了2帧完全一样的数据。

cpp 复制代码
  remote.sin_family = AF_INET;
  remote.sin_port = htons(GROUP_PORT);
  remote.sin_addr.s_addr = inet_addr(GROUP_ADDR);

  int err = sendto(sockfd, buff, lens, 0, (struct sockaddr*)&remote, sizeof(remote));
  if (err < 0)
  {
    perror("sendto()");
    return -1;
  }

原因

搜了下,获得重复包可能的原因:

  • 源是多宿主的,并且从源上的每个源地址发送一个数据包(这表明您的路由中存在缺陷,尽管它可能是无法解决的,甚至可能是有意为之的)

  • 根据设置,您可能会通过 IPV4 和另一个通过 IPV6 获取数据包(这表明您的设置中存在缺陷)

  • 从源到目标可能有多个路径, 指示 routing 中的循环,同样,这可能是一个缺陷,或者是故意的。

  • ...

解决

电脑与开发板都接到了移动光猫,可能是光猫转发了一次。将电脑和开发板接到交换机,收发正常。nice

相关推荐
小二·1 小时前
Python 异步编程深度解析:Async/Await 实战
网络·python·github
Yang96111 小时前
宽温大功率输出,LDMN-GM7 助力矿区雷达性能验收工作
网络·能源
电子科技圈2 小时前
CXL连接全面赋能AI与车载算力提升,SmartDV CXL全栈IP加速相关芯片设计
人工智能·网络协议·tcp/ip·机器学习·自动驾驶·边缘计算
网安小白的进阶之路2 小时前
B模块 安全通信网络 第二门课IPv6与WLAN 03
网络·安全
海绵宝宝de派小星2 小时前
MCP与A2A协议深度解析:Agent时代的“TCP/IP“如何诞生
arm开发·网络协议·tcp/ip·ai
dong__csdn2 小时前
websocket实现简单的单聊、群聊demo
网络·websocket·网络协议
一只小鱼儿吖2 小时前
代理IP与内网穿透:网络世界的“隐形斗篷”与“任意门”
网络
天行健,君子而铎2 小时前
自适应、全链路与智能识别——政务数据安全泛监测系统
java·网络·政务
搞科研的小刘选手2 小时前
【西安交通大学主办】第六届人工智能、自动化与高性能计算国际会议 (AIAHPC 2026)
网络·人工智能·机器学习·数据挖掘·自动化·云计算·并行式
XiaoLin laile3 小时前
数据合规越查越严,企业内网通讯软件成安全刚需
网络