2009-07-06 9 views
2

Je reçois le message d'erreur "Resource temporairement indisponible" lorsque j'utilise la méthode receive_from(), c'est un membre de ip :: udp :: socket located here.Ressource temporairement indisponible dans Boost ASIO

Je lui passe: boost :: asio :: buffer, pointeur vers un objet de point de terminaison, flags (mis à zéro), et un objet error_code.

je crée le point final avec juste

new udp::endpoint() 

Il ne semble pas y avoir trop d'informations disponibles sur ce message d'erreur aussi. Je l'ai essayé sur plusieurs machines et j'ai toujours cette erreur.

Répondre

3

"Ressource temporairement indisponible" est normalement la description textuelle pour EAGAIN, indiquant que l'opération doit être réessayée. Dans le cas d'UDP, cela indique qu'il n'y a pas de données disponibles actuellement, et vous devriez essayer plus tard.

Il est généralement intéressant de consulter la page de manuel de la fonction libc sous-jacente; qui est recvfrom dans ce cas.

+0

Je vois ... J'envoie un paquet avec un autre programme que j'ai écrit, ce qui fonctionne bien car je peux voir le paquet avec tcpdump. Alors, comment les données ne sont-elles pas disponibles si elles sont reçues par la machine? – devin

Questions connexes