Linux下发送全网广播报文
前面一段时间做个程序移植,需要在Linux下发送和接收全网广播(255.255.255.255)报文。由于对Linux不是太熟悉,因此查了一些资料才解决这个问题,这里做个概要总结。 1)建立UDP socket,并调用setsockopt设置SOL_SOKET层的SO_BROADCAST选项,以支持广播。这个步骤与VxWorks等下都一样。 2)需要确保Linux的路由表中有到
·
前面一段时间做个程序移植,需要在Linux下发送和接收全网广播(255.255.255.255)报文。由于对Linux不是太熟悉,因此查了一些资料才解决这个问题,这里做个概要总结。
1)建立UDP socket,并调用setsockopt设置SOL_SOKET层的SO_BROADCAST选项,以支持广播。这个步骤与VxWorks等下都一样。
2)需要确保Linux的路由表中有到255.255.255.255的路由表项,可以通过利用 route add 命令添加,例如route add 255.255.255.255 eth0,注意eth0只是个例子,需要换成实际接口命,可以用ifconfig查看。这个步骤很重要,是我查资料花时间最多的一步。可以把添加静态路由的命令放在/etc/rc.local文件中,从而避免开机后再次配置路由。
3)调用sendto函数就可以发送全网广播报文了。
更多推荐
已为社区贡献1条内容
所有评论(0)