boost::asio -> read



  • wie bewerkstelligt ihr das empfangen von daten?
    erstellt ihr manuell für jeden socket einen neuen thread, der dann ne (blocking) Funktion aufruft und wenn er zurückkehrt, schreibt ihr das empfangene in nen puffer und setzt irgendwo nen signal, damit man weiß, dass gerade etwas empfangen wurde? Eine andere(also komplett fertige) Möglichkeit habe ich irgendwie gerade nicht gefunden...

    bb



  • wieso sollte man DAS tun wollen?
    thread-pool, async_read und completion-handler.



  • "thread-pool, async_read und completion-handler"
    also genau so, wie ich das beschrieben habe!?

    bb



  • Nein. Der Zusammenhang zwischen Thread und Read Operation wird dann von Asio (bzw. vom OS (IOCP unter windows)) hergestellt. Auch ist die Zuordnung nicht 1:1 (nicht 1 Thread pro 1 Socket).

    Daraus ergibt sich aber eine andere Arbeitsweise, welche eben asynchron abläuft.

    Alles in allem sehr viel skalierbarer.

    Simon



  • @unskilled:
    was du beschrieben hast ist ganz was anderes.
    ohne die üblichen begriffe zu kennen (thread-pool vs. dedicated thread vs. was auch immer) ist es ziemlich schwierig zu diskutieren.


Anmelden zum Antworten