suche gute Socket Library



  • Hallo!
    Ich bin momentan auf der Suche nach einer guten Socket Library, vieleicht kann mir da jemand etwas empfehlen. Sie sollte aber einige Voraussetzungen erfüllen:
    - LGPL oder ähnliche Lizenz, besser: Public Domain
    - Möglichst einfache Handhabung
    - Mindestens auf Linux und Windows lauffähig
    - Sollte bereits Verschlüsselung integriert haben (openssl)
    - Stabil

    Vieleicht hat da ja jemand etwas.

    MfG
    Florian



  • Für C++ gibt es momentan noch keine guten Socket-Libraries.



  • Benutz mal die Suchfunktion und Google. Es gibt da eine Menge Libraries. Nur leider sind die entweder in keinem schönen C++ oder im Alpha Stadium.

    SSL Integration wirst du nicht finden, da SSL ja ein höheres Protokoll ist 🙂 Aber du kannst ja einfach OpenSSL nehmen, wenn du SSL brauchst.



  • warum nicht die socket funktionen direkt benutzen? die sehen bis auf wenige ausnahmen unter win und unix(clones) gleich aus. unterschiede lassen sich leicht mit #ifdef umgehen



  • net schrieb:

    warum nicht die socket funktionen direkt benutzen? die sehen bis auf wenige ausnahmen unter win und unix(clones) gleich aus. unterschiede lassen sich leicht mit #ifdef umgehen

    das viel zu low-level, wenn man eine ernsthafte anwendung schreiben will.



  • tcpip experte schrieb:

    das viel zu low-level, wenn man eine ernsthafte anwendung schreiben will.

    das ist doch nicht low level. sowas ist low level --> http://www.opentcp.org/index.php



  • Das Problem ist, dass man die Sockets in einer größeren Anwendung früher oder Später eh Kapseln muss, wegen der Übersichtlichkeit.
    Aber mal ne andere Frage: OpenSSL hat doch die BIO-Funktionen. Sind die auch eine nutzbare Socket-Abstraktion? Und wenn ja, wie macht man bei denen select-statements (sind ja leider extrem schlecht dokumentiert).



  • hi. schrieb:

    Für C++ gibt es momentan noch keine guten Socket-Libraries.

    Noch? Noch? Wie lange gibt es C++ schon? Wird es für C++ irgendwann überhaupt jemals eine gute Socket-Bibliothek geben? Ich glaube nicht mehr daran.



  • Optimizer schrieb:

    hi. schrieb:

    Für C++ gibt es momentan noch keine guten Socket-Libraries.

    Noch? Noch? Wie lange gibt es C++ schon? Wird es für C++ irgendwann überhaupt jemals eine gute Socket-Bibliothek geben? Ich glaube nicht mehr daran.

    ich doch auch nicht :p



  • Optimizer schrieb:

    hi. schrieb:

    Für C++ gibt es momentan noch keine guten Socket-Libraries.

    Noch? Noch? Wie lange gibt es C++ schon? Wird es für C++ irgendwann überhaupt jemals eine gute Socket-Bibliothek geben? Ich glaube nicht mehr daran.

    das kann doch nicht so schwer sein. eine 'class sockstream' mit operator >> und << und dem ganzen c++ krempel hat bestimmt schon einer gebastelt



  • net schrieb:

    Optimizer schrieb:

    hi. schrieb:

    Für C++ gibt es momentan noch keine guten Socket-Libraries.

    Noch? Noch? Wie lange gibt es C++ schon? Wird es für C++ irgendwann überhaupt jemals eine gute Socket-Bibliothek geben? Ich glaube nicht mehr daran.

    das kann doch nicht so schwer sein. eine 'class sockstream' mit operator >> und << und dem ganzen c++ krempel hat bestimmt schon einer gebastelt

    klar. aber die libraries werden alle nicht mehr gepflegt. viele bauen sich eine eigene library und veröffentlichen sie auch, bringen sie dann aber nicht "zu ende".

    also ich wäre ja dafür das wir hier im c++ forum zusammen eine entwickeln.



  • Optimizer schrieb:

    hi. schrieb:

    Für C++ gibt es momentan noch keine guten Socket-Libraries.

    Noch? Noch? Wie lange gibt es C++ schon? Wird es für C++ irgendwann überhaupt jemals eine gute Socket-Bibliothek geben? Ich glaube nicht mehr daran.

    Stabile und funktionierende Libraries gibt es ja zu hauf. Siehe ACE oder Netxx. !flame!Und die sind immer noch besser als der J*v*/*N*T Müll 😉!flame!

    Es geht eben darum, dass man das moderne C++ Feeling genießt und das gibt es noch nicht so lange. Sagen wir mal, seit 2002 verbreitet es sich immer stärker. Mit giallo/boost::socket gibt es ja schon etwas in die Richtung, das ist aber leider zZ Alpha 😞



  • netxx ist so gut wie tot: http://pmade.org/site/show/Software

    giallo/boost::socket ist imho tot.



  • Wir sollten vieleicht wirklich mal versuchen etwas eigenes zu machen, wir können ja das hier als Grundlage benutzen:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-74038-and-highlight-is-socket+library.html

    Könnt sich noch jemand bezüglich meiner Frage mit den BIO-Funktionen von OpenSSL ein paar posts weiter oben beschäftigen? 🙂



  • FloFri schrieb:

    Wir sollten vieleicht wirklich mal versuchen etwas eigenes zu machen, wir können ja das hier als Grundlage benutzen:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-74038-and-highlight-is-socket+library.html

    Das ist aber auch nicht gerade das was man gemeinhin unter einer Socket-Library versteht. Das ist ein besserer Wrapper. Mir fehlt da irgendwo die Erweiterbarkeit, auch haperts wenn man ein weiteres OS unterstützen will ziemlich am Design. Außerdem unterstützt es irgendwie nur die absoluten Grundlagen der Socket-Library. Wo sind RawSockets? Wenn schon so HighLevel dann aber bitte auch ganz oben: Wo ist ein ClientManager?

    MfG SideWinder



  • Wo sind RawSockets?

    *lol*



  • client manager schrieb:

    Wo sind RawSockets?

    *lol*

    Naja gut, so weit runter muss man dann auch nicht gehen können, wenns ja vor allem darum geht dem User das zu verschleiern. Aber ich stehe halt persönlich auf Libraries bei denen man zwar mit drei Methodenaufrufen alles am Laufen hat aber im Notfall nahezu alles durch eigene Module austauschen kann um an die untersten Regionen auch zu kommen 🙂

    MfG SideWinder



  • man kann ja erstmal nen guten wrapper bauen und darum baut man dann im zweiten schritt das high-level zeug



  • kingruedi schrieb:

    Stabile und funktionierende Libraries gibt es ja zu hauf. Siehe ACE oder Netxx. !flame!Und die sind immer noch besser als der J*v*/*N*T Müll 😉!flame!

    Genau, und weil es für C++ so viele tolle Libs gibt, ist es auch immer meine erste Wahl für die Anwendungsprogrammierung. 😉
    ACE ist kostenpflichtig, oder? boost ist seit ungefähr 2-3 Jahren alpha und damit IMHO tot. 😞



  • communityprojekt schrieb:

    man kann ja erstmal nen guten wrapper bauen und darum baut man dann im zweiten schritt das high-level zeug

    Ja, das ist die richtige Vorgehensweise. Siehe dazu auch (wenn es euch nicht zu sehr kränkt) das Design in der .Net Klassenbibliothek. Es gibt einen Raw-Socket-Wrapper, den man benutzen kann, wenn man auf Schmerzen steht. Dann gibt es einen TcpClient/TcpListener, der dieses Ding wrappt und Stream I/O bereitstellt. Außerdem sind hier noch ein paar Sachen wie Protokoll-Auswahl vorweg genommen (es gibt auch entsprechend nen UdpClient). Und natürlich ist hier ne Unterscheidung zwischen Server-/Client Sockets, die bei Raw Sockets bekanntlich nicht so gegeben ist.
    Wiederum darauf aufbauend findet man dann Dinge wie Remoting.
    Der einzige echte Designfehler ist, dass man jeweils an die eingekapselten Objekte ran kommt. Man kann von nen Remoting-Sink den TcpClient getten und von den den Raw-Socket-Wrapper. Dies hätte ich nicht zugelassen.


Anmelden zum Antworten