首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linux 2.6.30上UDP广播发送失败:“network is unreachable”

在linux 2.6.30上UDP广播发送失败:“network is unreachable”
EN

Stack Overflow用户
提问于 2013-08-01 11:42:53
回答 1查看 6.1K关注 0票数 8

我用udp broadcast.Code段写了一个程序,如下所示:

代码语言:javascript
复制
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),0,
       (struct sockaddr*)&broadcast_addr,sock_len);

 if(ret==-1)
    perror("sendto failed");

输出:

代码语言:javascript
复制
sendto failed: Network is unreachable

但是当我运行“添加默认网关”命令时,如“route add default gw 10.10.10.111 ",错误disappears.When setting a new ipaddress to netdev,命令应该如上所述运行,否则会出现错误。为什么?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-07-09 09:36:45

不确定为什么255.255.255.255对你无效。但是,我自己从来没有使用过它作为广播IP。当我发送广播数据包时,我通常从我的子网掩码推导出广播IP,例如,如果您的子网掩码是255.255.255.0 (/24),并且您的IP是192.168.0.5,那么要发送UDP广播,您的目的IP应该是192.168.0.255。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17984889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档