Je connecte une socket de manière asynchrone (O_NONBLOCK + connect). La norme POSIX spécifie que, une fois le socket connecté, il doit signaler l'événement en rendant le descripteur de fichier du socket prêt à être écrit. Il ne semble rien dire sur les échecs lors de la connexion asynchrone. Quand je le teste sur Linux, il semble que parfois je reçois POLLOUT et parfois POLLERR dans cette situation. Y a-t-il un modèle dans le comportement? Puis-je lui faire signaler les erreurs d'une seule façon? Est-ce que POSIX dit quelque chose que j'ai oublié?Comment une erreur signalée par une socket asynchrone est-elle connectée?
7
A
Répondre
4
D. Bernstein a quelque chose qui semble être pertinent: http://cr.yp.to/docs/connect.html. En particulier, il suggère plusieurs façons différentes d'éliminer les erreurs.
La FAQ UNIX Socket a une section sur Connect with timeout, qui comprend obtenir l'erreur d'échec d'une connexion à l'aide getsockopt
Questions connexes
- 1. Vérifiez si une socket est connectée avant d'envoyer des données
- 2. YUI CustomEvent aucune erreur n'est signalée
- 3. C# problème de socket asynchrone
- 4. Déconnexion et reconnexion d'une socket de datagramme connectée
- 5. boost :: asio, erreur de lecture asynchrone
- 6. Java: la reconnexion sur un socket donne parfois une erreur
- 7. Erreur Git: fatale: impossible de connecter une socket (argument invalide)
- 8. Comment envoyer canvas.Children par socket?
- 9. Comment créer une socket sortante vers une interface réseau SPECIFIC?
- 10. erreur de socket winsock
- 11. Rebobiner une socket vers une autre interface
- 12. Comment savoir quelle application locale est connectée à mon socket (Windows)
- 13. Comment lier dynamiquement une socket à une seule interface réseau?
- 14. Comment arrêter une opération de lecture sur une socket?
- 15. Socket SSL dans Windows. Bibliothèque? Synchrone/asynchrone? Threads?
- 16. Erreur envoi de courrier de manière asynchrone
- 17. Récupération du nom d'utilisateur Windows depuis une machine connectée via une application intranet
- 18. Vérifiez la connexion à une imprimante POS connectée via COM
- 19. erreur en passant arugument par une fonction
- 20. Communication par socket?
- 21. Comment corriger cette erreur: http_client.c (227) Erreur lors de la création d'un socket. Erreur probablement renvoyée par le système d'exploitation
- 22. Socket Server déconnecter et reconnexion erreur tampon?
- 23. Comment appelez-vous une requête Web asynchrone dans VB.NET?
- 24. Comment puis-je tester une méthode contenant un appel asynchrone?
- 25. Liaison à une socket dans Tomcat
- 26. Erreur 10035 sur un socket bloquant
- 27. Python Socket aide (erreur de syntaxe)
- 28. Comment puis-je détecter si une webcam est connectée au PC?
- 29. Application CRUD parfois connectée DAL
- 30. XMLHttpRequest vs Socket vs une autre approche
Les deux textes supposent que la connexion informe l'utilisateur sur le succès de connexion/échec par événement POLLOUT. Cependant, ce que je vois est que Linux utilise POLLOUT ou POLLERR à cette fin. –