Définir un délai d'attente sur socket_read

Je me demandais comment puis-je définir un délai d'attente sur un socket_read appel? La première fois qu'il appelle socket_read, il attend jusqu'les données sont envoyées, et si aucune donnée n'est envoyée dans les 5 secondes, je veux fermer la connexion. Toute Aide? J'ai déjà essayé SO_RCVTIMEO avec pas de chance.

Je suis de la création d'un socket avec socket_create() et à l'écoute pour les connexions, puis lorsqu'il est connecté j'écoute pour les données et de faire quelque chose avec elle. Lorsque le délai d'attente frappe, je veux courir socket_shutdown() et puis socket_close().

Veuillez prendre à noter que l'API Windows Sockets ne fonctionne pas avec les délais d'attente moins de 500 ms. Vous pouvez définir délai de beaucoup plus petite quantité de temps, mais pendant que vous serez sur la plateforme Windows, vous devez savoir que cela ne fonctionnera probablement pas comme vous le souhaitiez. Référence: microsoft.com/mspress/books/WW/sampchap/4287d.aspx .

OriginalL'auteur James Hartig | 2008-12-23