[Vergeben] Stream(buf)s - Anwendungsgebiet Netzwerk



  • Ich kann nur nicht sagen ob mein Aufbau stilistisch 'korrekt' ist (hab mir selber mit dem Projekt die Streambufs naeher bringen wollen).
    Funktioniert auf jeden Fall ohne Probleme in meiner kleinen Server/Client-Anwendung 🙂



  • Hallo,

    yap, hört sich interessant an 🙂

    Wenn du einen Artikel dazu schreiben möchtest, wird der eh von uns fachlich durchgearbeitet, sollte sich noch irgendwo ein Fehlerchen eingeschlichen haben, also mach dir da mal keine Sorgen 😉

    Ich würde dich bitten, mir einen groben Entwurf (Inhalt, ungefährer Aufbau) deines Artikels an redaktion at c-plusplus dot de zu schicken, damit ich mir ein Bild machen kann.
    Dann nehmen wir dich ins Team auf und *räusper* weihen dich in die magischen Geheimnisse des C++ Magazins ein 😉

    Grüße

    GPC



  • Oh da bin ich gespannt.
    Ich kann sowas demnächst nämlich auch noch gebrauchen. 😃



  • Ich hab' zwar auch schon angefangen, etwas zum Thema Stream-Puffer zu schreiben, aber in letzter Zeit komme ich nicht wirklich weiter mit dem Thema. Also wenn du willst, kannst du gerne übernehmen.

    (und mit einer praktischen Anwendung im Hintergrund wird's sicher anschaulicher)



  • Thomas (: schrieb:

    Ich kann nur nicht sagen ob mein Aufbau stilistisch 'korrekt' ist (hab mir selber mit dem Projekt die Streambufs naeher bringen wollen).
    Funktioniert auf jeden Fall ohne Probleme in meiner kleinen Server/Client-Anwendung 🙂

    Da es ja schon asio gibt, welches das ganze schon fertig liefert, mußt du ja mit deinem Artikel keine produktiv einsetzbare Lösung präsentieren. Aber mich pers. interessiert überhaupt erstmal ein Ansatz und eine mögliche Implementierung. Das wäre genial, wenn überhaupt mal jemand sowas zeigt.

    Ist genau das gleich wie mit den Allokatoren für die C++ Lib. In jedem Buch wird dieses Thema nur angeschnitten, in "Modernes C++ Design" habe ich zum ersten Mal gesehen, wie man einen eigenen Allokator überhaupt implementieren könnte.



  • Hi,

    ich habe auch mal ein paar streambufs fürs Netzwerk (TCP und UDP, Linux/Unix) implementiert, die ich auch selbst verwende. Wenn Interesse besteht, kann ich einen Link zu der Implementierung und auch ein kleineres und ein grosses Beispielprogramm zur Verfügung stellen.

    In der gleichen Bibliothek habe ich ausser Netzwerk noch einige andere streambufs realisiert (md5-Berechnung, streamcounter, iconvstream, hexdumper, base64-encoding und -decoding, tee), so daß hier noch mehr Beispiele zur Verfügung stehen.

    Gruß

    Tntnet



  • macht das bei udp überhaupt sinn? das ist doch gar kein stream.



  • Man kann aus vielen einen Stream machen. Auch UDP.cDie Ausgabe wird dabei gesammelt und bei einem flush dann gesendet. Es ist sicher kein Paradebeispiel, aber dennoch möglich.

    Ich habe eine Logging-Bibliothek, die über UDP Log-Einträge verschickt. Das habe ich über einen Stream gelöst.

    Tntnet



  • GPC schrieb:

    Ich würde dich bitten, mir einen groben Entwurf (Inhalt, ungefährer Aufbau) deines Artikels an redaktion at c-plusplus dot de zu schicken, damit ich mir ein Bild machen kann.

    Arg, habe gerade den Tippfehler entdeckt. 🙄
    Hast du schon etwas geschickt? Angekommen ist nämlich nichts soweit ich es gesehen habe. 😞



  • Hm habs auch grade erst bemerkt hehe

    This is an automatically generated Delivery Status Notification

    Delivery to the following recipient failed permanently:

    redation@...

    Technical details of permanent failure:
    PERM_FAILURE: SMTP Error (state 9): 550 <redation@...>: invalid address

    Habs nochmal verschickt 😉



  • Okay, dank dir. 🙂



  • kommt der Artikel überhaupt noch??



  • Ja. 🙂



  • Okay, dank dir. 😋



  • Äh, Kommando zurück, ich hab falsch geschaut. Der Artikel den ich meinte, befasst sich mit Streambuffers allgemein.
    Der Artikel hier wurde noch nicht angefangen, näheres weiß ich auch nicht. Sorry.



  • Wenn man aufwandsscheu ist, kann man das ganze mit Boost.Iostreams implementieren.



  • Weiß nicht ob es hilft, aber Boost.asio benutzt Streams um Daten übers Netzwerk zu verschicken. Kann man da nicht einfach reinschauen? Implementieren braucht man es eh nicht mehr, würde man das Rad eh nur neu erfinden. (denke ich mal)



  • Artchi schrieb:

    Weiß nicht ob es hilft, aber Boost.asio benutzt Streams um Daten übers Netzwerk zu verschicken. Kann man da nicht einfach reinschauen? Implementieren braucht man es eh nicht mehr, würde man das Rad eh nur neu erfinden. (denke ich mal)

    Mein Socket-Device mit Timeout und Corking ist ein 100-Zeilen-Ding. Die längste Methode ist write(), die auch mit Signal-Unterbrechungen umgehen kann. Setzt auf Boost.Iostreams auf. Es geht auch noch einfacher.


Anmelden zum Antworten