verständnisfrage: udp multiplayergame über inet

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

emcapone

Betreff: verständnisfrage: udp multiplayergame über inet

BeitragMi, Jul 30, 2008 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Ich habs endlich geschaft dieses ganze multiplayerkrimkrams fertig zu stellen und über meine IPv4-IP-Adresse (?) läuf auch alles soweit ganz gut, aber damit das über internet laufen kann, muss das ganze über die richtige(?) IP laufen können oder? also über die, die mann bei www.wieistmeineip.de rausbekommt.
so das hab ich dann gleich versucht und wie ich es schon erwartet hatte gings natürlich nicht. hab ich hier im forum geguckt und dazugelernt, dass die Ports wohl dafür offen seien müssen. Also habe ich mir einen Portscanner besorgt und herausgefunden, dass ich genau 2 offene Ports habe aber die werden von "ftp" und "telnet" benutzt. außerdem ist das ja wohl so, dass jeder router unterschiedlich konfiguriert ist, was die ports angeht. da frage ich mich: kann das überhaupt was werden, dass man per udp über inet multiplayen kann? ich meine normale Multiplayerspiele wie Counter-Strike,Battlefield etc laufen doch auch problemlos über udp und ich kennen keinen, der jemals einen port dafür öffnen musste. Ich weiss gar nicht ob ich den gesammtzusammenhang richtig verstanden habe :/

Jean

BeitragMi, Jul 30, 2008 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Türlich geht UDP über Inet. Dein Problem ist, dass die ftp und telnet Ports nur bei deinem PC geöffnet sind und nicht beim Router. Aber du musst sowieso andere Ports verwenden, da diese Porta ja schon besetzt sind.
Also wenn dein Server hinter einem Router steht, musst du einfach beim Router die Ports vom Server öffnen. Egal ob TCP oder UDP.
 

emcapone

BeitragMi, Jul 30, 2008 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm das müssen dann aber alle spieler die mitspielen oder??

Jean

BeitragMi, Jul 30, 2008 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, ein Client braucht keine geöffneten Ports, nur der Server
 

emcapone

BeitragMi, Jul 30, 2008 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
genau, dann würd es nämlich nicht zu meiner befürchtung kommen. aber ich denk mir immer: bei udp gibt es doch eigentlich keinen richtigen host, es gibt nur einen der die aufgabe übernimmt und die IPs und IDs der "clienten" sammelt und den datentransfer übernimmt.
zB: bei 2 Computern sind doch eigentlich beides Clienten? Oder ich habs echt nicht gecheckt Neutral wie unterscheiden sich Client und Host hier konkret?

D2006

Administrator

BeitragDo, Jul 31, 2008 8:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hängt natürlich in der Tat davon ab, wie du das für dein Programm festlegst, aber ich denke, man kann verallgemeinernd sagen: Der, der die erste Anfrage sendet, ist Client und der, der die erste Anfrage bekommt, ist der Host. Allein weil eben dieser Empfänger, der im Prinzip völlig unerwartet eine UDP-Nachricht kriegt, auch seinen Router forwarden lassen muss, da ebendieser sonst gar nicht weiß, wohin mit der Nachricht. Der Router des Senders weiß zumeist bei der ersten Antwort noch, wer im internen Netzwerk eine entsprechende Anfrage geschickt hat und routet die Antwort entsprechend korrekt ohne Forwarding-Einstellung.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

emcapone

BeitragDo, Jul 31, 2008 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ok thx leute!! Wink

Firstdeathmaker

BeitragDi, Aug 05, 2008 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie ist das eigentlich, wenn der Client ne Nachricht sendet, dann weis der Client-Router ja wer die verschickt hat. Aber wenn man jetzt zwei Clients im Netzwerk hat, die auf einen im Internet befindlichen Server zugreifen, dann weis der Router das doch nicht mehr, oder?

Und habe ich das richtig verstanden, dass bei einem Request vom Client per UDP die direkte Antwort vom Server durchkommt? Und was ist wenn der Server später ein Signal zum Client schicken möchte ohne dass dieser vorher einen Request verschickt hat? Kommt das dann überhaupt an? Oder muss man immer in bestimmten Abständen vom Client update requests schicken?
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
 

Dreamora

BeitragDi, Aug 05, 2008 23:37
Antworten mit Zitat
Benutzer-Profile anzeigen
mehrere clients im gleichen netz: das ist kein problem, der router wird einfach den ausgehenden port der zwei systeme verschieden wählen, die antwort kommt entsprechend dann auch auf nem anderen port an.

wenn der client nix an den server schickt wird es ohne einrichtung des routers für forward garnix machen.

Wenn dein client nicht ständig daten über die leitung schickt, ist UDP total verschwendete zeit. UDP ist nur dann sinnvoll wenn man die erhöhte geschwindigkeit braucht die durch den möglichen packetverlust erkauft wird. Wenn man sowieso kein actionorientiertes game hat (MMORPG oder noch "langsamer") dann ist TCP die erheblich bessere wahl weil man sich nicht um packetverlust und korrekte ankunftsreihenfolge der packete kümmern muss.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group