Pregunta

En C / C ++, ¿cómo convertiría un socket de bloqueo en un socket no de bloqueo tanto en WinSocks como en * nix; para que select () funcione correctamente. Puede usar el preprocesador para el código específico de la plataforma.

¿Fue útil?

Solución

En Linux:

fcntl(fd, F_SETFL, O_NONBLOCK);

Windows :

u_long on = 1;
ioctlsocket(fd, FIONBIO, &on);

Otros consejos

Se supone que

select () funciona en bloqueo sockets. Regresa cuando un read () regresaría de inmediato, que es siempre el caso de los sockets sin bloqueo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top