Question

En C / C ++, comment transformer un socket bloquant en un socket non bloquant dans WinSocks et * nix; afin que select () fonctionne correctement. Vous pouvez utiliser le pré-processeur pour le code spécifique à la plate-forme.

Était-ce utile?

La solution

Sous Linux:

fcntl(fd, F_SETFL, O_NONBLOCK);

Windows :

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

Autres conseils

select () est supposé fonctionner sur les sockets bloquants . Il renvoie quand read () retournerait immédiatement, ce qui est toujours le cas avec les sockets non bloquants.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top