En Win32, ¿hay alguna manera de comprobar si un socket no bloquea?En Win32, ¿hay alguna manera de probar si un socket no es bloqueante?
En sistemas POSIX, me gustaría hacer algo como lo siguiente:
int is_non_blocking(int sock_fd) {
flags = fcntl(sock_fd, F_GETFL, 0);
return flags & O_NONBLOCK;
}
Sin embargo, los sockets de Windows no son compatibles con fcntl(). El modo sin bloqueo es establece usando ioctl con FIONBIO, pero no parece que haya una forma de obtener el modo actual sin bloqueo usando ioctl.
¿Hay alguna otra llamada en Windows que pueda usar para determinar si el socket está actualmente en modo no bloqueante?
Si acepto() una conexión, ¿el nuevo socket heredan el ¿estado de bloqueo de la toma de audición? –