int fd;
struct sockaddr_in addr;
fd = socket (AF_INET, SOCK_DGRAM, 0);
if (fd < 0) {
syslog(LOG_ERR, "socket: %s\n", strerror(errno));
break;
}
addr.sin_family = AF_INET;
addr.sin_port = 0;
addr.sin_addr.s_addr = pr->ip;
if (connect (fd, (struct sockaddr*)&addr, sizeof(addr))== 0)
syslog(LOG_ERR, "socket connect works!\n");
else
syslog(LOG_ERR, "socket connect fails: %s\n", strerr(errno));
close (fd);
sleep(2);
}
When the code runs, it prints:
socket connect works!
socket connect fails: Network is unreachable
socket connect fails: Network is unreachable
socket connect fails: Network is unreachable
...
In other works, the connect works the first time then fails all subsequent times. As
a side effect of running this code in my app, the networking system in the entire
tablet seems to get destroyed. In particular, when I try to ping from a terminal
emulator window I get "Network is Unreachable".
This code works under Linux. Is there something I am either forgetting or doing
wrong under Android?
Thanks - Fred