Einzelnen Beitrag anzeigen

ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

Hilfe bei Sockets

  Alt 27. Dez 2011, 00:42
Hallo,
Ich möchte ein simples Client/Server Spiel entwickeln. Leider habe ich noch ein Paar Probleme.

Spielprinzip:
2 Spieler (Clients) verbinden sich mit einem Server (IP aus Edit-Feld). Sobald der Server 2 Clienten hat, startet er das Spiel (Problem 1). Die beiden Spieler drücken jeweils einen Button. Jeder Buttonklick wird gesendet. Der Server schickt diesen Wert (als Text) rum. Die 2 Clients wandeln ihn in einen Integer um und rechnen ihm auf eine ProgressBar (die eigene ist grün, die des Gegners rot). Wer zuerst die Bar vollhat gewinnt . Ich habe das so gelöst, das bei OnClientConnect eine Variable vom Typ Integer aufgezählt wird (Startwert 0, bei Connection +1, bei Disconnection -1). Ein Timer überprüft die Variable. Ist sie = 2, dann hält er an und sendet an die Clients einen Countdown:
Delphi-Quellcode:
For I := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
    begin
     with ServerSocket1.Socket.Connections [I] do
      if (Connected) then
       begin
        SendText('Ready?');
        delay(1000);
        SendText('3');
        delay(1000);
        SendText('2');
        delay(1000);
        SendText('1');
        delay(1500);
        SendText('RACE!!!');
       end;
    end;

//Problem 2
Zusammengefasst:
1. Mein Problem 1 ist, das ich, wenn 2 Clients verbunden sind, jede weitere unterbinden muss, wie stelle ich das am besten an? Ich hätte einer eingehenden Verbindung einen SendText geschickt, und der Client ließt denn: if Socket.ReveiceText = 'disconnect please' then blablablablabla
2. Problem 2 sieht man oben (Code). Das ganze funktioniert ja an sich... Jedoch erhält erst Client A das Ganze und dann erst Client B. Wie schicke ich meinen Countdown an beide Clients gleichzeitig?!

Anmerkung: Wenn ihr Ideen habt, die das Spiel verbessern könnten, dürft ihr euch auch gerne äußern (z.B. Serverliste, etc.)
Lukas
  Mit Zitat antworten Zitat