![]() |
Kartenspiel: Kommunikation via Lan und Internet
hallo,
bin endlich mal wieder dazu gekommen ein bisschen zu programmieren... (schule, k12...) Ich bin grad dabei, ein Kartenspiel zu programmieren. Jetzt stellt sich mir die Frage, wie ich die Kommunikation zwischen verschiedenen Spielern (an versch. PCs) regeln soll! Bis jetzt hab ich zu Test-Zwecken im LAN das ganze über Named-Pipes gemacht. Dabei hat ein Rechner den Server geöffnet. Dazu hat der Spieler am selben PC einen Client (-> Mitspieler) und der Spieler am anderen PC auch einen geöffnet. Die Clients kommunizieren dann bei Ereignissen immer mit dem Server, der die Aktionen weiter verteilt. Das ganze hab ich aber nur teilweise entwickelt, weil ich mir nicht sicher bin wie ich weiter machen soll. Außerdem wollte ich das ganze auch fürs Internet ermöglichen, d.h. ein Spieler eröffnet auf seinem Rechner einen Server. Andere Spieler wählen sich nun bei diesem als Clients ein (die Anforderungen an den Server werden eigentlich minimal sein, da es ja normalerweise nur um die 4 Spieler gibt und keiner so schnell spielt, das der Server mit der Aktionsverteilung nicht mehr mitkommt ;-)). Ich kenn mich aber leider in Internetsachen nicht besonders aus. So stellt sich mir die grundlegende Frage, mit welcher Technik ich arbeiten soll. Muss diese bei LAN und Internet unterschiedlich sein? Eigentlich schon oder? Machen NamedPipes für LAN Sinn? Sind sie einigermaßen angriffssicher gegen Hacker, etc? Wie gestalte ich das fürs Internet, das ich mit Hackern kein Problem krieg? Kann man das realisieren, dass einer einen Server öffnet und die anderen sich via Internet da anmelden? (Wie finden sie sich, woher weis man, wo es welchen server gibt, muss ich dafür eine Website zur verfügung stellen, wo sich die server-anbieter anmelden? soll ich selbst einen Server anbieten - will ich eigentlich nicht und lohnt sich für mich auch nicht, da ich dass nur zu lernzwecken und Spass machen will) Die Sicherheitsfragen sind natürlich absolut sekundär, aber ich möchte kein unsicheres Spiel im Internet anbieten - genauso erwarte ich es von anderen schließlich auch... Ich hab an die Technik eigentlich keine hohen Anforderungen, da ich pro Aktion nur das nötige Kommando mit Parametern versenden will, was nur einige Bytes sein sollten / werden. Außerdem hält sich die Kommunikation auch in Grenzen... mfg, heiopei |
Re: Kartenspiel: Kommunikation via Lan und Internet
Hallo heiopei,
also von NamedPipes ahb ich keine Ahnung ;-) ich hab mal ein Chat mit den Server Socket und Client Sockets gemacht. Die Architektur also der Aufbau war identisch mit deinem... Also auch Ein Server der weitervermittelt. Wenn du sowas über das I-Net machen möchtest ist die erste Schwierigkeit das du die IP des Serverrechnes Kennen musst. Ok- es gibt genug Webseiten die diese IP auch anzeigen ( ![]() Und es gibt auch genug ![]() Dann müsste es eigentlich auch kein Problem sein Sowas übers I-Net laufen zu lassen - außer wenn Du Ports benutzt die dann halt von irgendwelchen Rootern gesperrt sind... Leuchtende Grüße Stefan PS: Falls ich mich irren sollte bitte ich um Berichtigung :wink: |
Re: Kartenspiel: Kommunikation via Lan und Internet
hi,
also hab mir das noch mal n bisschen durch n kopf gehen lassen... es würde also nichts dagegen sprechen, sowohl die LAN- als auch die Internet-Steuerung mit NamedPipes zu realisieren, oder? Wie mache ich aber den Client-Spielern bekannt, wo es welche Spielserver gibt? Wie z.B. läuft das mit der Server-"Vermittlung" bei Counter-Strike (ich spiel des nich, deswegen keine ahnung, wie das geht...)? Also sowohl im LAN, als auch im Internet! Außerdem frag ich mich, wie sicher die NamedPipe-Verbindungen sind und ob es nicht alternative, etvl. einfachere oder performantere Lösungen gibt! danke für tipps, mfg heiopei |
Re: Kartenspiel: Kommunikation via Lan und Internet
Im Lan benutzt CS afaik UDP-Broadcasts, um die Server zu finden. Im Internet gabs dafür die WON-Server, an denen sich auch die Server anmelden. Der Client fragt dann die WON-Server nach Servern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz