Welche Libary für die Netzwerkprogrammierung?



  • Hallo, Ich würde mich gerne mit dem Thema Netzwerkprogrammierung in C++ auseinander setzen.
    Ich stoße bin bis jetzt auf Libarys, Poco, Asio, und WinSock gestoßen, ich finde aber Asio sehr komplex aufgebaut, WinSock funktioniert nur unter Windows und für Poco finde ich keine anständingen Tutorials. Ich programmiere bereits seit ca. 6 Monaten mit C++ und beherrsche die Windows API relativ gut.

    Ich würdet mir weiter helfen wenn ihr sagt welche Libary ihr benutzt und ob ihr ebenfalls gute Tutorials für die Libarys empfehlen könnt.

    Danke ❤



  • WinSock ist fast 1:1 Berkeley-Sockets, und die gibt's auf fast allen Plattformen.

    Der Teil der überall unterschiedlich ist, ist welche "demultiplexing" Mechanismen zur Verfügung stehen. select gibt's überall, ist aber auf POSIX Systemen problematisch. Brauchst du allerdings auch nur wenn du non-blocking IO machen willst.

    Und wenn du lernen willst wie Netzwerkprogrammierung funktioniert, dann würde ich dir auch empfehlen erstmal mit WinSock/Berkeley-Sockets anzufangen.

    Und wenn du damit erstmal halbwegs gut klarkommst, dann Asio. Weil ernsthaft Anwendungen programmieren will man mit "nacktem" WinSock/Berkeley-Sockets eher nicht. Aber es ist kein Fehler die Funktionen zu kennen auf die alle anderen Libraries aufbauen.



  • für HTTP gibts noch boost beast und viele andere libs.

    Ansonsten TCP, UDP, Unix Sockets, ... würde ich für alles boost asio verwenden. boost asio vs systemspezifische lösungen (io completion ports, epoll, neue linux kernel async sachen) ist es definitiv lohnend asio zu verwenden.
    POCO gefiel mir nicht sehr. Und sonstige networking libs sind entweder eingebaut in andere Sachen (Qt, Spielesachen, ...), sind angestaubt, oder haben eine bestimmten Zweck. IMHO kann keine andere "umfassende" lib mit boost asio mithalten.



  • @5cript

    POCO gefiel mir nicht sehr. Und sonstige networking libs sind entweder eingebaut in andere Sachen (Qt, Spielesachen, ...), sind angestaubt, oder haben eine bestimmten Zweck.

    Ist POCO nicht auch so ein riesen Teil das mächtig Ballast mitbringt? Also eher ein "Application Framework" als eine Netzwerk-Library?



  • @hustbaer sagte in Welche Libary für die Netzwerkprogrammierung?:

    Ist POCO nicht auch so ein riesen Teil das mächtig Ballast mitbringt? Also eher ein "Application Framework" als eine Netzwerk-Library?

    ja stimmt. Frage mich ob die gewachsen ist oder ob das schon immer so war.



  • @5cript Ich hab mir das Ding vermutlich vor 7~10 Jahren angesehen - damals waren wir auch auf der Suche nach einer Netzwerk-Library für C++. Und selbst damals war POCO schon ein riesen Framework.


Anmelden zum Antworten