UDP Programmierung: 1 Server mehrere Clients



  • Hallo,

    ich habe einen UDP Server geschrieben und einen Client, der dem Server über UDP Nachrichten schicken kann. Ich möchte das nun dahingehend erweitern, dass der Server in der Lage ist, mehrere Clients zu bedienen und voneinander zu unterscheiden (was er ja anhand der Adressen der Clients tun kann).

    Meine Fragen:

    1. Muss ich für jeden Client einen eigenen Thread erstellen?
    2. Wenn ja, braucht dann jeder Thread einen eigenen Serversocket?
    3. Kennt ihr vielleicht ein Beispiel, wo Gewünschtes umgesetzt und dabei erklärt wird?

    Danke!
    Wimme





  • Hallo Bassmaster!

    Ich habe nochmal ein bisschen rumgesurft, und mir scheint es, als müsse man nur einen Serversocket verwenden, da die Clients ja alle an die selbe Adresse schicken sollen. Das funktioniert, weil ich hier UDP (nicht TCP, wie in deinem Beispiel!) verwenden will. D.h. aber auch, dass select() keinen Sinn mehr macht.

    Wo ich mir noch nicht sicher bin, ist folgendes:
    Entweder ich benutze einfach im Server recvfrom, schaue mir den Inhalt des gesendeten Pakets an und gucke dann, was ich damit mache (i.e. zu welchem Client das gehörte etc). Oder aber, ich muss einen Thread für jeden Client erstellen, wobei ich mir da nicht sicher bin warum, es aber glaube, da wir passenderweise letztes Mal etwas zu Threads gelernt haben 😉
    Dafür habe ich aber leider noch kein passendes Beispiel gefunden.



  • Ich mochte auch ein Multi-Server client auf dem Linux programmieren.
    Sehr viele leute auf dem Internet haben mich dieser manual geraten

    Beej's Guide to Network Programming
    http://beej.us/guide/bgnet/

    Aber kenne ich nicht wenn dieser manual wirclich gut ist, weil ich ihn noch nicht gelesen habe.

    P.S.
    (Ouch! Ich glaube der Syntax auf dem letzte phrase shreklich gewesen ist. Nein? :SS )


Anmelden zum Antworten