jsp做的大型网站,马云做一网站 只作一次,哈尔滨网络优化公司有哪些,企业信息填报指南今天在做之前一个项目重构的事情#xff0c;需要把之前的代码重新做功能#xff0c;我们有两个设备#xff0c;他们通过网线连接#xff0c;用UDP来传输数据。很多人都怀疑UDP丢包什么#xff0c;不及时什么之类的#xff0c;如果想把事情做得足够快#xff0c;最好还是… 今天在做之前一个项目重构的事情需要把之前的代码重新做功能我们有两个设备他们通过网线连接用UDP来传输数据。很多人都怀疑UDP丢包什么不及时什么之类的如果想把事情做得足够快最好还是在UDP上做一些事情对于丢包是有很多处理方式的。然后我在新代码的调试下发现问题A设备发送广播包给B设备发送不成功。简单的代码定位如下#include errno.h
printf(%s(),LINE%d,[%s]\n, __FUNCTION__, __LINE__, strerror(errno));执行后看到输出我刚开始以为是端口的原因然后检查了一下才发现是因为我没有设置默认网关我从网上看到这个图的。讲道理我们的两个设备都不需要连接外网所以是没有必要配置网关的问题是出在我的网络广播包发送的的是 255.255.255.255。在配置系统里面默认网关的目的是告诉系统当有些数据包不匹配路由表中其他任意路由不知道怎么选路的时候就把这个数据包丢给默认网关让它帮你转所以网关可以认为是网络的管家当有人不知道做什么的时候就需要网关来告诉他要做什么要到哪里去。在把网关配置正常后设备可以正常收发数据。但是我不想每次都配置一次网关所以我就需要换一个广播地址把广播的地址修改成192.168.9.255。嗯这样之后发送就不会再提示有问题了。但是接收数据没有看到有数据崩溃~~~~这个时候单播和两个设备互ping都是没有问题的。然后检查两个设备的网络情况如下发现两个设备不在同一个网段下so我就怀疑我的服务可能写的有问题。正常情况下A设备通过DHCP从B设备获取IP那B设备的DHCP服务配置就可能是很大的问题了因为每次执行获取IP的命令后就发现我的子网掩码被修改了那应该是DHCP服务搞的鬼。然后去看DHCP服务的配置文件发现配置文件写的有问题配置文件没有让设备处在同一个子网掩码下。错误的配置文件如下需要把opt subnet 配置成和IP地址同一个网段的地址。opt subnet 是子网掩码的计算工具子网掩码就是通过这个计算出来的我们子网掩码不正确也就是这个原因了。最后修改固件的配置文件重新烧录后验证正常。网络是个很复杂的东西搞网络的时候我总是搞不懂MAC层是什么PHY层是什么为什么有了MAC层又多出来一个PHY层。说白了这两个层都是硬件层我们还可能遇到一些Switch加两个PHYSwitch可能很多人还不知道是什么东西这无非就是高速开关有多高速我也说不清楚反正因为高速切换产生的温度是非常高的。好了就这样。感谢发哥又跟我调试了一天~谢谢发哥~