2009-07-06 15 views
2

Ich bekomme die Fehlermeldung "Ressource vorübergehend nicht verfügbar", wenn ich die Methode receive_from() verwenden, ist es ein Mitglied von IP :: udp :: socket located here.Ressource vorübergehend nicht verfügbar in Boost ASIO

Ich übergebe es: boost :: asio :: buffer, Zeiger auf ein Endpunkt-Objekt, Flags (auf Null gesetzt) ​​und ein Fehlercode-Objekt.

erstelle ich den Endpunkt mit nur

new udp::endpoint() 

Es scheint nicht zu viele Informationen über diese Fehlermeldung zu Verfügung stehen. Ich habe es auf mehreren Rechnern versucht und bekomme immer diesen Fehler.

Antwort

3

"Ressource vorübergehend nicht verfügbar" ist normalerweise die Textbeschreibung für EAGAIN, die angibt, dass der Vorgang erneut versucht werden sollte. Im Fall von UDP zeigt dies an, dass derzeit keine Daten verfügbar sind, und Sie sollten es später versuchen.

Es lohnt sich generell, die man-Seite für die zugrundeliegende libc-Funktion zu betrachten; Das ist recvfrom in diesem Fall.

+0

Ich sehe ... Ich sende ein Paket mit einem anderen Programm, das ich schrieb, das funktioniert gut, wie ich das Paket mit tcpdump sehen kann. Wie sind die Daten nicht verfügbar, wenn sie von der Maschine empfangen werden? – devin