AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke 4inaRow -> LAN fähig machen
Thema durchsuchen
Ansicht
Themen-Optionen

4inaRow -> LAN fähig machen

Ein Thema von Entropie410 · begonnen am 24. Feb 2009 · letzter Beitrag vom 24. Feb 2009
Antwort Antwort
Entropie410

Registriert seit: 12. Nov 2008
5 Beiträge
 
#1

4inaRow -> LAN fähig machen

  Alt 24. Feb 2009, 14:19
Guten Tach,

Also ich habe schon vor einiger Zeit ein doch recht umfassendes 4iergewinnt programmiert und möchte dieses nun LAN-fähig machen, ich habe mich ein wenig damit auseinandergesetzt und auch ein paar Tuts gelesen allerdings basieren diese Tuts alle auf dem Client/Server - Prinzip und ich möchte das so Peer to Peer like haben. Wie mache ich dne das? Ich blage mich schon die ganze Zeit umherdum aber auf einen wirklich grünen Zweig komme ich nicht. Ich möchte ja eigentlich nur drei Variablen verschicken: 1. u. 2. Die Kordinaten des Spielsteins 3. wer am Zug ist.
Kann mir hier jemmand vlt. einen Tipp geben wie ich das anstellen kann? Ich scheitere nämlich schon daran festzulegen wer, wer ist!

Mfg Entropie
  Mit Zitat antworten Zitat
AtiX

Registriert seit: 10. Dez 2006
2 Beiträge
 
#2

Re: 4inaRow -> LAN fähig machen

  Alt 24. Feb 2009, 14:26
Hallo,
was spricht dagegen es nach dem Client/Server Prinzip zu machen? AFAIK ist p2p ja nur das man sowohl einen (oder mehrere) Server als auch Client in einem Programm hat.
4 gewinnt ist ja immer nur mit 2 Spielern, da versteh ich nicht was du da so P2P like machen willst...

Grüße,
AtiX
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: 4inaRow -> LAN fähig machen

  Alt 24. Feb 2009, 14:54
Ein neu gestarteter Client (A) sendet erstmal eine UDP-Broadcast Message aus.
Bei einem UDP-Broadcast ist die Ziel-IP = 255.255.255.255.

Clients (B & C), die noch keinen Partner haben empfangen den Broadcast und werten die Message aus.
In der Message steht die IP-Adresse und die Portnummer (und der Rechnername).
Client B & C fragen den User, ob zu Client A eine Verbindung aufgenommen werden soll.
Falls der User das zulässt, verbindet sich z.B. Client C mit Client A.
Client A bietet einen offenen Port an; er agiert also im Prinzip wie ein Server.

Ab diesem Zeitpunkt besteht eine permanente TCP/IP-Verbindung zwischen A und C.
Andreas
  Mit Zitat antworten Zitat
Entropie410

Registriert seit: 12. Nov 2008
5 Beiträge
 
#4

Re: 4inaRow -> LAN fähig machen

  Alt 24. Feb 2009, 19:26
Ok also ich habe jetzt mal einfach mal eine TcpServer - Komponente und eine Tcp Client Komponente eingebaut, hier mal der Source Code(dann ist es leichter zu erklären was ich will):

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
TCPServer1.localport:='5000';
TCPServer1.active:=true;
end;

procedure TForm1.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);
var s:string;
begin
s:= Clientsocket.Receiveln;
Showmessage(s);
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
var who:string;
begin
If radiogroup1.itemindex=0 then who:='Gelb';
If radiogroup1.itemindex=1 then who:='Rot';

TCPClient1.RemoteHost:=edit1.Text;
TCPClient1.RemotePort:='5000';
if TCPClient1.connect then
 begin
   TCPClient1.Sendln(who) ;
   TCPClient1.Disconnect ;
   drawgrid1.Enabled :=false;
 end;
end;
Nun ja ich möchte jetzt im OnAccept-Event des Servers dem Programm irgendwie klar machen wer die rote Farbe hat und wer die Gelbe. Wie kann ich erörtern wer wer ist um eben zu sagen der nimmt die rote Farbe und der andere die Gelbe? das is mir einfach nicht klar...

Mfg Entropie
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: 4inaRow -> LAN fähig machen

  Alt 24. Feb 2009, 20:17
Guten Abend,

ich würde das beim Connecten dem Zufall überlassen.
Also mit random arbeiten.
Kommt bei Random eine Geradezahl heraus -> gelb
ansonsten gelb.

Das Programm auf das sich aufgeschaltet wird, bestimmt die Farbe.

Auch sollte festegelegt werden wer das erste Spiel beginnt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:05 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