Chat problem



  • Hallo.

    Ich möchte zusammen mit nem Kumpel nen Chat in C programmieren. Ich mach den Server, er die Clients.
    Nur stellt sich mir beim Server folgende Frage:

    Ich habe einen Hauptprozess, der neue Verbindungen annimmt, und einen Kindprozess erstellt, der dir Daten des jeweiligen Clienten empfängt. Daraus resultiert ja ein Socket, auf den ich schreiben kann, um an eben diesen Klienten Daten zu senden. Dafür wollte ich einen "Senden" Prozess erstellen, der in einer SChleife alle Socktes, die vorhanden sind, durchläuft und die jeweiligen Daten schickt.
    Nur wie bekomme ich a. die Empfangenen daten eines "Empfang" Prozesses an den Sende Prozess und wie bekomme ich den Senden Prozess dazu die Sockets des jeweiligen Empfangs prozesses mit zu verwenden?

    Ich hoffe, das ist nicht zu wirr geschrieben 😉

    besten Dank,
    Sky.



  • Wozu so viele Prozesse? man select



  • Entweder wie Bashar gesagt hat "select"
    (= synchrone Behandlung aller Sockets in einem einzigen Prozess)...

    oder:
    anstatt des Child-Processes ein Thread ....

    oder:
    ohne Socketes über inetd und die Clients über IPC (= inter-process-communication) synchronisieren....

    oder:
    du synchronisierst deine (child-)prozesse ebenfalls über IPC...

    .. ist unix nicht was tolles? 😃

    Wobei "select" in deinem Fall wohl der sinnvollste Weg wäre...
    ... ausser nachtürlich du möchtest dich neben der Socket-Programmierung
    parallel noch auf anderen Gebieten weiterbilden 😉



  • Ich werds nun wohl per select machen. Hab dazu schon ein paar ganz brauchbare Seiten gefunden 🙂

    gruss, Sky.


Anmelden zum Antworten