ben udp broadcast.Code segmentini kullanarak bir programı yazmak linux üzerinde "ağ erişilemiyor":UDP Yayın sento başarısız şu şekildedir: 2.6.30
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");
çıkışı:
sendto failed: Network is unreachable
Ama ne zaman çalıştırmak "varsayılan ağ geçidi" komutunu çalıştırın "yol ekleme varsayılan gw 10.10.10.111" gibi, hata kaybolur. netdev için yeni bir ipaddress ayarı yaparken, yukarıdaki gibi komut çalıştırılmalıdır, aksi halde hata geliyor. Niye ya? Teşekkürler.