ServerSocket soll Sockets verwalten



  • Hallo zusammen,

    ich bastle gerade an einem Netzwerkprogramm.
    Allerdings habe ich das in C/C++ noch nie gemacht, deswegen wollte ich mal Fragen, wie ich bei einer Verbindung zwischen zwei Programmen, die gleichgestellt sein sollen, die Clients verwalte.
    Ich habe mir gedacht, dass ich mir eine Klasse Client und eine Klasse Server erstelle, der Server sollte beim akzeptieren der Clients neue Client-Objekte produzieren (den Socketdeskriptor grieg ich ja immerhin).

    Kann man diesen Ansatz verwenden oder bietet sich das in C/C++ nicht an?

    gruß thomas235



  • erstmal solltest du dich entscheiden C oder C++

    ja du kannst objekte erzeugen der posix-std verbietet das nicht

    wenn du mehrer clients gleichzeitig bedienen möchtest dann solltest du dich mit asynchronem io (nonblocking) und/oder threads beschäftigen.
    ich empfehle asynchronen io



  • Ja, das ist ein gängiger Ansatz. Wenn du sehr viele Clients gleichzeitig hast, ist der Ansatz mit einem Thread pro Client allerdings nicht mehr so toll. Edit: ach, von Threads hattest du gar nichts geschrieben. Naja.

    wie ich bei einer Verbindung zwischen zwei Programmen, die gleichgestellt sein sollen, die Clients verwalte.

    ??



  • Also ich denke C++ wäre wegen den Klassen die bessere Wahl 😉

    Was genau ist asynchrone I/O? Die Idee von den Threads kenne ich noch aus meiner Java-Zeit 😉

    Mit "gleichberechtigt" meine ich, dass ich 2 gleiche Programme im Netzwerk habe, beide lauschen auf dem gleichen Port. Dann soll es egal sein, ob sich Programm A mit Programm B verbindet oder umgekehrt. Also sollte in beiden Programmen nach dem Verbindungsaufbau jeweils ein ClientSocket mit dem jeweils anderen Programm verbunden sein. Der Server soll dann unabhängig von den ClientSockets weiterlauschen.


Anmelden zum Antworten