Boost.asio Probleme
-
Also... ich habe da ein kleines Problem mit boost.asio, wo mir bisher keiner helfen konnte.
(abgesehen davon, hat mir im boost-channel niemand geantwortet)Ich möchte ein paar Daten per boost::asio::async_write über das Netzwerk versenden, und per boost::asio::async_receive empfangen.
Dies klappt auch - jedenfalls bis ich eine weitere Sende-/Lese-Operation aufrühren will.Jede weitere Operation auf dem Socket erzeugt dann einen EOF-Fehler.
Ich glaube langsam, dass es kein Fehler von meiner Seite ist, sondern die Funktion so funktioniert.
Allerdings weiß ich nicht, wie ich die Funktion dann richtig einsetzen sollte.Ich hoffe hier kann mit jemand ein paar Anregungen geben, wie die Funktion richtig zu benutzen ist.
-
Zeig mal deinen Code.
-
Im Grunde reicht da schon:
void read_handler(const boost::asio::error& error, std::size_t bytes) { if(!error) // Ab dem 2. lesen ist der Fehler boost::asio::error::eof { //Daten verarbeiten boost::asio::async_read(sock, boost::asio::buffer(data, size), read_handler); } else std::cerr << error.what() << std::endl; } int main() { //io_service, socket usw. boost::asio::async_read(sock, boost::asio::buffer(data, size), read_handler); io.run(); }
-
hier fragen: http://sourceforge.net/mail/?group_id=122478
-
Probiers mal mit async_read_until