boost::asio - acceptor wiederverwenden



  • Hallo

    Das ist mehr eine philosophische Frage über die Benutzerfreundlichkeit von boost::asio .

    Wenn man einen acceptor stoppen und wiederverwenden möchte, muss man ihn ja wieder öffnen. (steht so in der Doku). Was dort aber nicht steht ist, wie man ihn wieder zu dem Zustand bringt, wie man ihn hatte, wenn man den Konstruktor nimmt mit dem io_service einem endpoint . Nun habe ich natürlich einfach mal dort in die Implementierung geschaut und gesehen, dass exakt dieselben Schritt notwendig sind, wie in dem Konstruktor, also die Aufrufe an folgende Funktionen:

    • basic_socket_acceptor::open ()
    • basic_socket_acceptor::set_option ()
    • basic_socket_acceptor::bind ()
    • basic_socket_acceptor::listen ()

    Nun Frage ich mich, warum zur Welt haben sie nicht eine Funktion, die genau das macht? Oder zumindest die Schritte in der Doku aufgeführt? Warum muss ich also, um einen acceptor zum wieder laufen kriegen in den Source von boost::asio gehen und schauen, was die dort machen um das selbe hinzu kriegen?
    Ich finde das ehrlich gesagt sehr schwach. Von der Implementierung und der Dokumentation.

    Ebenfalls, dass basic_socket_acceptor::bind offensichtlich nicht auf dem aktuellen stand ist, denn das Beispiel hier:
    http://www.boost.org/doc/libs/1_41_0/doc/html/boost_asio/reference/basic_socket_acceptor/bind/overload1.html
    geht nicht, da keine Umwandlung gefudnen werden konnte.


Anmelden zum Antworten