关于linux下udp广播包

关于linux下udp广播包,第1张

确认你的广播包在eth0和wlan0上都发出了吗?我估计只在eth0上发了。

教你一个办法确认,在linux上使用tcpdump 抓包:

tcpdump -i eth0

tcpdump -i wlan0

最近在调试linux下的udp广播,发现当addr设置成server.sin_addr.s_addr = INADDR_BROADCAST

时候,调用sendto返回-1,在网上找了好多资料都没结果。后来无意间发现原来调用

res = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &server, sizeof(server))

因为默认情况下套接字是不指出广播的,必须设置套接字描述符支持广播才行。

问题解决,为了防止大家也遇上这种问题,写下此文分享一下。

借鉴http://blog.csdn.net/dxpqxb/article/details/38403199


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7088906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存