UDP广播发送失败:linux 2.6.30上的“网络无法访问”

UDP广播发送失败:linux 2.6.30上的“网络无法访问”,第1张

概述我使用udp broadcast.Code段编写程序如下: struct sockaddr_in broadcast_addr;socklen_t sock_len=sizeof(broadcast_addr);bzero(&broadcast_addr,sock_len);broadcast_addr.sin_family=AF_INET;broadcast_addr.sin_port 我使用udp broadcast.Code段编写程序如下:
struct sockaddr_in broadcast_addr;socklen_t sock_len=sizeof(broadcast_addr);bzero(&broadcast_addr,sock_len);broadcast_addr.sin_family=AF_INET;broadcast_addr.sin_port=12345;broadcast_addr.sin_addr.s_addr=inet_addr("255.255.255.255");int fd=socket(AF_INET,SOCK_DGRAM,0);int broadcast_enable=1;setsockopt(fd,Sol_SOCKET,SO_broADCAST,&broadcast_enable,sizeof(broadcast_enable));uint8_t send_buf[100];int ret=sendto(fd,send_buf,sizeof(send_buf),(struct sockaddr*)&broadcast_addr,sock_len); if(ret==-1)    perror("sendto Failed");

输出:

sendto Failed: Network is unreachable

但是当我运行“添加默认网关”命令如“route add default gw 1​​0.10.10.111”时,错误消失.当将新的ipaddress设置为netdev时,应该运行上面的命令,否则会出现错误.为什么?谢谢.

解决方法 不确定为什么255.255.255.255不适合你.但是,我自己从未将其用作广播IP.当我发送广播数据包时,我通常从子网掩码中获取广播IP,即如果您的子网掩码是255.255.255.0(/ 24)并且说您的IP是192.168.0.5,那么要发送UDP广播,您的目标IP应该是192.168.0.255. 总结

以上是内存溢出为你收集整理的UDP广播发送失败:linux 2.6.30上的“网络无法访问”全部内容,希望文章能够帮你解决UDP广播发送失败:linux 2.6.30上的“网络无法访问”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存