de Possible en double:
In Win32, is there a way to test if a socket is non-blocking?Check est prise bloque (Winsock spécifique)
Voilà comment je mis la prise en mode non-bloquant dans les fenêtres.
unsigned long mode = is_blocking ? 0 : 1; int ret = ::ioctlsocket(m_Socket, FIONBIO, &mode);
Dans ma bibliothèque complexe que je reçois des verrous occasionnels parce que certaines prises qui lui sont transmises ne sont pas réglés en mode non-bloquant. Donc, je voudrais ajouter et affirmer pouvoir voir où est passé le socket non-bloquant. Le problème est que je ne sais pas comment tester si le socket bloque ou non.
Sur unix, il est simple:
long arg = 0; if((arg = fcntl(m_Socket, F_GETFL, NULL)) < 0) { return ERROR; } bool was_blocking = (arg & O_NONBLOCK) != 0;
, comment puis-je tester si socket bloque les fenêtres.
grâce
Merci pour la réponse, c'est exactement ce qui a été ma conclusion, difficile de croire que tous leurs extras avec WSAIoctl au-dessus des sockets bsd plain ne liste pas quelque chose qui peut effectivement être utile. – Pavel