Brauche Hilfe bei Klassendesign



  • Hi Leute,
    Ich möchte eine Klasse schreiben die einen TCP-Server/Client darstellt;
    Ich möchte es so realisieren das es einen sendenden und einen empfangenden Thread gibt die in 2 Buffer innerhalb der Klasse schreiben/lesen.
    Mein Problem ist, dass ich nicht weiß wie ich dem sendenden Thread klar machen soll das es etwas zu senden gibt, bzw wie ich dem Hauptprogramm sage das etwas empfangen wurde;
    Ich möchte das aber nicht mit flags lösen die ständig gepollt werden da mir das nicht sehr effektiv scheint.
    Meiner meinung nach wäre es am besten wenn sobald etwas empfangen wird eine Funktion des Hauptprogramm (die per pointer übergegben wird) aufgerufen wird.
    Umgekehrt sollte beim senden eine Funktion der Klasse aufgerufen werden, die dem "schlafenden" Thread sagt, dass er senden soll;

    LG
    und ich hoffe es hat jemand Lösungsansätze für mich.



  • ka schrieb:

    Hi Leute,
    Ich möchte eine Klasse schreiben die einen TCP-Server/Client darstellt;
    Ich möchte es so realisieren das es einen sendenden und einen empfangenden Thread gibt die in 2 Buffer innerhalb der Klasse schreiben/lesen.
    Mein Problem ist, dass ich nicht weiß wie ich dem sendenden Thread klar machen soll das es etwas zu senden gibt, bzw wie ich dem Hauptprogramm sage das etwas empfangen wurde;
    Ich möchte das aber nicht mit flags lösen die ständig gepollt werden da mir das nicht sehr effektiv scheint.
    Meiner meinung nach wäre es am besten wenn sobald etwas empfangen wird eine Funktion des Hauptprogramm (die per pointer übergegben wird) aufgerufen wird.
    Umgekehrt sollte beim senden eine Funktion der Klasse aufgerufen werden, die dem "schlafenden" Thread sagt, dass er senden soll;
    LG
    und ich hoffe es hat jemand Lösungsansätze für mich.

    Wenn Du das für Windows haben möchtest, dann sieh dir im MSDN Thread-Synchronisationsobjekte wie Events und Wartefunktionen wie WaitForSingle(Multiple)Object(s) an. Unter Linux wirst Du bestimmt in der Pthread-Library was passendes finden.


Anmelden zum Antworten