如何在网络中广播消息?

时间:2010-02-27 13:12:23

标签: c sockets network-programming

我正在研究用C编写的客户端 - 服务器应用程序。我想向本地网络上的所有机器广播一条消息。

如何使用C中常用的套接字系统调用?

4 个答案:

答案 0 :(得分:6)

您必须使用UDP通过网络发送广播消息。使用socket()函数创建套接字时,请为AF_INET参数指定family,为SOCK_DGRAM参数指定type。在某些系统上,您必须使用SO_BROADCASTsetsockopt()套接字选项设置为1来启用广播数据包的发送。

然后使用sendto()函数调用发送数据报,并使用255.255.255.255作为目标地址。 (对于数据报套接字,您不需要调用connect(),因为没有'连接')。

在标准实现中,该地址广播到本地网络中的所有计算机,这意味着该数据包不会跨越网关边界,并且不会被使用与发送计算机的网络掩码不同的网络掩码的计算机接收。

答案 1 :(得分:5)

只需将邮件发送到您子网的广播地址,192.168.0.0/24为192.168.0.255,或者只播放到255.255.255.255。

答案 2 :(得分:1)

您可以使用特殊地址255.255.255.255向本地网络上的每台计算机发送广播消息。

有关详细信息,请参阅IP Network Broadcasting部分。

答案 3 :(得分:1)

看看udp套接字。

我建议beej guide,看看6.3数据报套接字