正在进行UDP广播的程序,以前一直用TCP,对UDP并不熟悉。
今天突然发现,点对点的UDP可以正常通信,但是UDP广播发送时,在Windows下正常,在Linux下无法广播发送,查看MSDN,sendto函数发现实现广播时,必须设置SO_BROADCAST属性,setsockopt(sock,SO_SOCKET,SO_BROADCAST,s,n);
在bind后设置无法正常发送,必须在发送前设置。
正在进行UDP广播的程序,以前一直用TCP,对UDP并不熟悉。
今天突然发现,点对点的UDP可以正常通信,但是UDP广播发送时,在Windows下正常,在Linux下无法广播发送,查看MSDN,sendto函数发现实现广播时,必须设置SO_BROADCAST属性,setsockopt(sock,SO_SOCKET,SO_BROADCAST,s,n);
在bind后设置无法正常发送,必须在发送前设置。