程序两侧,一个为plc侧,一个为上位机程序,plc侧以广播方式发送(目标地址192.168.1.255). 上位机接收处理并显示。以前一直正常。突然6月两边程序启动后,在上位机无法接收到plc发送的数据包,但通过wireshark抓包时,指定网口上已经收到。但应用程序无法接收到。
分析过程,操作系统接口已收到但无法交给应用程序,说明某处有问题,查看了一下MAC地址正常,查看了防火墙设置正常。检查网络设置,突然发现原来上位机ip地址(192.168.1.11)配置为B类(255.255.0.0),但对侧发送为192.168.1.255,经过网络地址转换工具发现,这个IP在此网段下实际为一个“主机地址”,操作系统不认为他是一个广播所以并不会转到192.168.1.11的侦听地址上。
解决办法:通过分析,调整上位机的错误配置掩码地址为C段,这个满足上面的条件后,应用程序可以正常收到plc的数据包了。
由于很容易出现,特此记录,希望有同样的问题同学,可以按此思路分析