Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UDP广播发送失败:";“网络无法访问”;在linux 2.6.30上_Linux_Sockets_Udp - Fatal编程技术网

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

UDP广播发送失败:";“网络无法访问”;在linux 2.6.30上,linux,sockets,udp,Linux,Sockets,Udp,我使用udp广播编写了一个程序。代码段如下: 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

我使用udp广播编写了一个程序。代码段如下:

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");
输出:

sendto failed: Network is unreachable

但当我运行“添加默认网关”命令(如“路由添加默认网关10.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