Einzelnen Beitrag anzeigen

Chef16

Registriert seit: 26. Jan 2004
Ort: Lemgo
26 Beiträge
 
#4

Re: Ein Spiel über Lan spielen wie geht das?

  Alt 1. Feb 2004, 03:54
Hi,

das Ereigniss OnClientRead gibt es! Bei TServerSocket.
Und in der Procedure kennt er auch "Socket". In moment kann ich leider kein Beispiel-Programm schreiben, weil ich in Dortmund bin. Und ich habe hier kein Delphi! Montag oder Dienstag währe es kein Problem.

Aber du kannst dir ja paar Socket Tutorials durchlesen.
Meine Page ist leider noch nicht Online, aber wie z.b. auf www.delphi-treff.de gibt es ein Socket Tutorial. Und ich glaube nicht, das man ein Beispiel-Programm braucht. Hier ein Code (kann ihn nicht testen, wird aber 100% funktionieren. So schwer ist das ja nicht):

Delphi-Quellcode:

{Platzier 4 TButtons auf das Formular. Und 1 TClientSocket und 1 TServerSocket }

Procedure TForm1.Button1Click(Sender: TObject); {Button1}
Begin
  ShowMessage ('Button1');
  If ClientSocket1.Active:=True Then //Prüfen ob ClientSocket active ist
  ClientSocket1.Socket.SendText ('Button1');
End;

Procedure TForm1.Button2Click(Sender: TObject); {Button2}
Begin
  ShowMessage ('Button2');
  If ClientSocket1.Active:=True Then //Prüfen ob ClientSocket active ist
  ClientSocket1.Socket.SendText ('Button2');
End;

Procedure TForm1.Button3Click(Sender: TObject); {Button3}
Begin
  ShowMessage ('Button3');
  If ClientSocket1.Active:=True Then //Prüfen ob ClientSocket active ist
  ClientSocket1.Socket.SendText ('Button3');
End;

Procedure TForm1.FormCreate(Sender: TObject); {Formular "OnCreate"}
Begin
  {Diese Einstellungen wenn möglich schon in Objektinspektor
  einstellen um den Quelltext zu pflegen.}

  ServerSocket1.Port:=5810;
  ClientSocket1.Port:=5810;
  {Wichtig ist das ServerSocket und ClientSocket den gleichen Port
  haben.}

  ServerSocket1.Active:=True;
  {Drauf achten, das ServerSocket als 1 geöffnet wird!}
End;

Procedure TForm1.Button4Click(Sender: TObject); {Connect Button}
Begin
  ClientSocket1.Address:='127.0.0.1'; //IP
  ClientSocket1.Active:=True; //Verbindung herstellen
End;

Procedure TForm1.ServerSocketClientRead (Sender: TObject; Socket: TCustomWinSocket); {ServerSocket - OnClientRead.}
var s: String //String Variable - Local deklariert.
Begin
  {Bin mir nicht ganz sicher ob das hier so richtig ist die Procedure.
  Aber das spielt ja keine Rolle. KLick einfach auf ServerSocket bei
   Ereignisse Doppelklick auf OnClientRead ;) }

  s:=Socket.ReceiveText;
  If s='Button1Then
  Button1Click(Sender); //Button1 Klicken
  If s='Button2Then
  Button2Click(Sender); //Button2 Klicken
  If s='Button3Then
  Button3Click(Sender); //Button3 Klicken
end;
So das wars (Habe den Code ausen Kopf geschrieben ) Das sollte man eigendlich verstehen.

MFG
Sven!
irc.euirc.net -> #delphi-hilfe
  Mit Zitat antworten Zitat