我使用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 10.10.10.111”时,错误消失.当将新的ipaddress设置为netdev时,应该运行上面的命令,否则会出现错误.为什么?谢谢.