Linux下发送全网广播报文

来源:互联网 发布:前海数据服务有限公司 编辑:程序博客网 时间:2024/04/29 04:35

    前面一段时间做个程序移植,需要在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函数就可以发送全网广播报文了。

原创粉丝点击