verständnisfrage: udp multiplayergame über inet
Übersicht

emcaponeBetreff: verständnisfrage: udp multiplayergame über inet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm das müssen dann aber alle spieler die mitspielen oder?? | ||
![]() |
Jean |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, ein Client braucht keine geöffneten Ports, nur der Server | ||
emcapone |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok thx leute!! ![]() |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group