TCP/IP Sockets - Client/Server Grobkonzept

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
danims
User
Beiträge: 29
Registriert: Montag 19. Februar 2007, 20:23
Wohnort: Bern, Schweiz

Hallo

Ich arbeite mich gerade ein wenig in Sockets ein (TCP/IP). Dazu gibts eine Menge Tutorials im Netz, welche ich zum Teil gemacht habe oder jedenfalls gelesen habe.

Das Senden eines Strings über ein Socket, plus das Auslesen der darauffolgenden Antwort vom Server ist kein Problem.

Was aber, wenn das nicht nur einmal vorkommt, sondern halt x Mal? Ich mache im Prinzip den Client zu einem bestehenden Chat-Server.

Nun ist das aber so, dass die Verbindung zwischen Chat-Server und -Client bestehen bleiben muss. Ich habe von Threads gehört, aber weiss nicht, ob mich das weiterbringt. Meine Frage bezieht sich auch nicht auf Code, sondern um grundsätzliche Konzepte.

So rein aus dem heraus, was ich gelesen habe und was mir mein Verstand sagt, brauche ich im Client eine Art "main loop" welcher nichts anderes macht als die einkommenden Daten irgendwie abzufangen und dann entsprechend zu verarbeiten.

Kann mich jemand in die richtige Richtung schupsen? :(

Nachtrag: Hab zu spät gemerkt, dass das eigentlich in die Netzwerkprogrammierung gehört, kanns aber nicht verschieben.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Threads sind schon der richtige Ansatz dafür. Erstelle einfach einen Thread der auf einkommende Daten wartet (für jede Verbindung), einen der ausgehende Nachrichten sendet (ebenfalls für jede Verbindung) und einen der beide zusammenführt. Zum Austausch der Daten sind in diesem Fall Queues wohl am besten geeignet.

Am besten schaust du dir mal ein, zwei Tuturials zu Threading an, dann löst sich dein Problem von ganz allein. Mit Hilfe der Forumssuche findest du sicherlich auch einige nützliche Hinweise.
Benutzeravatar
danims
User
Beiträge: 29
Registriert: Montag 19. Februar 2007, 20:23
Wohnort: Bern, Schweiz

Hallo EyDu

Danke für deine Antwort. Threads sind für mich irgendwie wie ein Buch mit 7 Siegeln (Socket Programmierung auch).

Ich habe ein Tutorial gefunden [0], wo es um asynchrone Socket Programmierung geht. Ich schau mir das mal an, ist nett aufgebaut und verständlich. Falls ich mit "asynchronous Socket programming" falsch liege, wäre ich froh um dein Fingerzeig/Stoppschild :-)

Besten Dank!

[0] http://squirl.nightmare.com/medusa/async_sockets.html
Antworten