AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Ein Spiel über Lan spielen wie geht das?
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Spiel über Lan spielen wie geht das?

Ein Thema von Delphi-Noobie · begonnen am 31. Jan 2004 · letzter Beitrag vom 2. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2      
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#1

Ein Spiel über Lan spielen wie geht das?

  Alt 31. Jan 2004, 12:52
Hi,

ich hab so ein Programm namens Hangman (Kennt bestimmt jeder). bei dem Spiel geht ganz normal Form1 auf und auf dem Formular sind halt nen paar buttons und Labels und noch nen bissel mehr. Ich will das Programm auf 2 Rechnern installieren, die miteinander verbunden sind und wenn man z.B auf dem einen Rechner in dem Programm nen button drückt, soll genau das selbe was dann passiert auch auf dem anderen Rechner passieren! Wäre nett, wenn mir jemand helfen könnte!

PS: Kann man das dann auch auf nur einen Rechner testen, weil ich hier grad nur einen hab?
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
Chef16

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

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

  Alt 31. Jan 2004, 13:54
Hallo,

Das kannste mit Sockets machen (TClientSocket & TServerSocket). Du kannst 2 Programme daraus machen einmal ein Server-Programm und ein Client-Programm. Oder beides in 1. Beim Connecten musste darauf achten, das vorher der ServerSocket active ist. Am besten gleich in Objektinspektor Active auf True setzen. Vorher musste natürlich ein Port setzen. Der gleiche Port muss bei ClientSocket auch stehen, sons finden sich die Programme nicht. Also Z.b. Du bist jetzt Connected. Einer klickt auf Button5. Dann sendest du einfach mit TClientSocket einen String z.b.

ClientSocket1.Socket.SendText ('Button5');

Beim ServerSocket Ereigniss(Event) OnClientRead kannste den String lesen:

Code:
var s: String;
Begin
  s:=socket.receivetext;
  If s='Button5' Then
  Button5Click(Sender);
Usw.

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

Registriert seit: 28. Nov 2003
102 Beiträge
 
#3

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

  Alt 31. Jan 2004, 14:59
Hab ich alles gemacht, jedoch gibt es das event onclientread nicht und er erkennt auch den Befehl socket nicht! Vielleicht könntest du ja mal nen Beispiel Programm zum download anbieten mit Quellcode wenns du willst. Würde mir dann wahrscheinlich leichter fallen alles!
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
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
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#5

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

  Alt 1. Feb 2004, 08:54
jo hab das Tutorial angeguckt, aber er findet Onclientread immer noch nicht (es steht nicht im event drin) Die Komponente is doch die, bei der Karteikarte Internet und dann tcpclient(sockets) und tcpserver(sockets) oder? Und man musste natürlich auch noch die Unit scktcomps einfügen. Ich hab auch schon wie im Tutorial ne Variable deklariert (sever:tsersocket und client:tclientsocket) und dann (server.onclientread:=serverclientread aber das erkennt er auch nicht wo finde ich nun dieses onclientread?
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#6

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

  Alt 1. Feb 2004, 13:53
Ah ja ich hab grad in der Codelybrary gefunden, dass es ab Delphi 7 die Dinger nicht nehr gibt! Jetzt hab ich sie aber nachinstalliert
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#7

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

  Alt 1. Feb 2004, 14:07
Jetzt klappt alles nur 1 Problem gibts noch! Wie bekomme ich die IP des jeweiligen anderen PC's mit dem ich verbunden bin raus (also da wo er hinsenden soll)?
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
Chef16

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

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

  Alt 1. Feb 2004, 22:41
Zitat von Delphi-Noobie:
Jetzt klappt alles nur 1 Problem gibts noch! Wie bekomme ich die IP des jeweiligen anderen PC's mit dem ich verbunden bin raus (also da wo er hinsenden soll)?
Wie meinste das jetzt?
Also wenn man Connected ist sendet er doch zu den einen hin.
Oder kann man das Spiel auch mehr als 2 Spieler spielen? Wenn ja
dann musste das etwas anders machen. Und sons bekommst du die IP Z.b. so rauß (wenn nicht mehr als 2 Spieler spielen können):

Delphi-Quellcode:
{Bei ServerSocket "OnClientConnect"}

Label1.Caption:=Socket.RemoteAddress;
MFG
Sven!
irc.euirc.net -> #delphi-hilfe
  Mit Zitat antworten Zitat
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#9

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

  Alt 2. Feb 2004, 09:05
Gut danke! Damit müsste ich jetzt alles hinbekommen
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
Delphi-Noobie

Registriert seit: 28. Nov 2003
102 Beiträge
 
#10

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

  Alt 2. Feb 2004, 09:48
Ok es gibt doch noch 1 Problem Da, wo ich es testen will sind ca. 12 PC'S miteinander verbunden! aber er soll nur mit dem PC connecten, wo auch das Spiel läuft. Wie kann man testen, ob das das Spiel auf nen anderen PC auch läuft und dann von diesen Computer die remoteaddress rauskriegen?
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz