Empfangsbereitschaft beenden (Sockets)
-
Hallo!
Szenario: In einem Computerspiel wird über die Einstellungen festgelegt welcher Rechner Host ist. Die anderen Mitspieler wählen Client und geben die IP des Hosts an.
Nun zur Frage: der Host wartet ja mit recv( .. ); auf eingehende Nachrichten von Clients die sich verbinden wollen. Wie kann ich jetzt per Klick auf einen Button sagen das er genug gewartet hat (Starte Spiel)?
Ich hoffe ich konnte mein Problem einigermaßen verständlich darstellen.
THX
CyberGonzo
-
einfach 'closesocket' aufrufen. dann kommt er aus'm 'recv' raus
-
OK. Aber wenn ich closesocket() aufrufe beendet er ja den Socket.... den brauch ich aber später im Programm noch! Außerdem solange er bei recv() steht kann ja closesocket() gar nicht aufgerufen werden. Den Socket erzeugt er ja beim accept() kann ich da irgendwie dazwischen funken?
-
CyberGonzo schrieb:
Den Socket erzeugt er ja beim accept() kann ich da irgendwie dazwischen funken?
ich würde für den empfang einen eigenen thread spendieren. man kann aber auch asynchrones i/o verwenden (non-blocking sockets). guckst du: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/ioctlsocket_2.asp
-
Ok! Nur das ich das jetzt richtig verstanden habe mit den Threads...
Ich erstelle einen Thread in dem er mit accept() auf Verbindungen von Clients wartet.
Außerdem einen zweiten Thread der auf den Klick vom Button wartet.
Sobald in Thread 2 sagt das auf den Button geklickt worden ist beendet der Thread 1.Ich werd mir mal das mit den Threads anschauen. Sollte ich da nicht zum Ziel kommen meld ich mich nochmal.
Wie erstellt man eigentlich Threads und startet diese und beendet diese wieder
Hättest da zufällig noch n Tutorial, Links oder ähnliches? - mit der neuen Suche find ich nämlich rein gar nix!
Danke schonmal für deine Hilfe!
-
-
Cool Danke..... genialer Einstieg in Thread-Programmierung! Wär das nicht was für die FAQ?
-
CyberGonzo schrieb:
Cool Danke..... genialer Einstieg in Thread-Programmierung! Wär das nicht was für die FAQ?
Aber wenn dann nur für die FAQ eines bestimmten Betriebssystems :).
-
Dieser Thread wurde von Moderator/in AJ aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.