Zen*_*net 6 c sockets network-programming
我正在研究用C编写的客户端 - 服务器应用程序.我想向本地网络上的所有可用机器广播消息.
如何使用C中常用的套接字系统调用来做到这一点?
您必须使用UDP通过网络发送广播消息.通过创建套接字时socket()功能,指定AF_INET为family参数,并SOCK_DGRAM为type参数.在某些系统上,您必须通过将SO_BROADCAST套接字选项设置为1 来启用广播数据包的发送,使用setsockopt().
然后使用sendto()函数调用发送数据报,并255.255.255.255用作目标地址.(对于数据报套接字,您不需要调用connect(),因为没有'连接').
在标准实现中,该地址广播到本地网络中的所有计算机,这意味着该数据包不会跨越网关边界,并且不会被使用与发送计算机的网络掩码不同的网络掩码的计算机接收.