Socket und Threads (nonblocking)



  • In meiner Anwendung möchte ich eine Kommunikation via Socket verwenden.
    Nun stellt sich mir die Frage wie das mit dem Senden und Empfangen aussieht,
    da ich nicht möchte, dass meine Anwendung blockiert wird, wenn eine Aktion
    ausgeführt wird.

    Ich muss also wohl Threads verwenden....

    Ist es richtig, dass ich quasi 3 Threads benötige?

    1 Thread schaut ob etwas neues empfangen wurde.
    2 Thread ist bereit neue Eingaben in den Chat zu senden
    3 Thread arbeitet aus Thread 1 erhaltene Anweisungen ab (weitere Funktionen
    aufrufen, wenn z.B. ein "Open: readme.doc" als Befehl empfangen wurde).

    Oder mache ich mir das alles zu kompliziert und man kann es grundsätzlich straffen? Kann man es grundsätzlich so machen wie beschrieben?



  • Ich weß zwar nicht was dein Programm genau machen soll, aber gundsätzlich bräuchtest du sozusagen immer einen Maintherad, also den eigentlichen Prozess, der die anderen Threads überwacht und killen kann. Weiterhin einen Thread der auf dem socket blockierend (eventuell mit timeout) lauscht und nach dem Empfangen etwas tut und jeweils einen Thread der einen komplette "Sendeablauf" handhabt. Du solltest natürlich garantieren, dass immer ein Thread auf dem socket lauscht, damit keine Pakete verloren gehen.

    Berichtigt mich bitte! Ist schon eine weile her woch ich mit Threads garbeitet habe. 🤡


Log in to reply