Advertisement

在 Linux 系统中使用 raw socket 套接字构造 UDP 数据帧,并将其广播到局域网,在另一台计算机上显示 UDP 信息

阅读量:

由于采用IEC61850标准必须直接访问以太网的数据链路层接口,因此必须做好相关接口的连接准备。打算通过Linux C语言构建带有UDP原始帧的数据包,在局域网上发送这些消息,并利用QT程序接收并展示这些广播信息。

在互联网上有关于如何通过RAW SOCKET构建原始帧的信息极为稀缺,在互联网上有关于如何通过RAW SOCKET构建原始帧的信息极为稀缺,在互联网上有关于如何通过RAW SOCKET构建原始帧的信息极为稀缺

通过Wireshark工具可以捕获UDP数据包,并观察其传输过程;然而,在这个UDP数据中,并未被应用层的QT程序所解析。经过实际测试发现,这可能是由于UDP段内校验和计算出现错误导致的数据完整性问题。因此Wireshark并未直接报错提示;但该UDP无法被应用层的程序正确解析或捕获(经本人多次测试确认)。

(2)在发送仅一个数据帧的UDP中,identification(ID)的值将会影响其传输效果。经过测试发现,在仅发送一个数据帧的情况下,即使将identification设置为任意值也不会导致UDP消息传输失败。

(3)开发基于Linux的UDP原始数据包构建工具及基于QT的UDP消息接收界面程序若在同一台计算机上运行则无法正确接收到广播 UDP 消息;而将其分别部署在两台不同的服务器上则能正常接收。(我的分析指出 在本地机器上发送的 UDP 包可能

全部评论 (0)

还没有任何评论哟~