Netzwerkprogrammierung
-
Hi,
ich habe mit DirectPlay einen einfachen Chat gebastelt.
Es gibt aber Probleme wenn man übern Router ins Netz geht, da ja über eine ip mehrere Rechner rausgehen. Um dann den Chat benützen zu können, muss man beim Router extra die ports einstellen. Nur kann dann wieder nur ein User den Chat benutzen.
Gibt es da eine möglichkeit eine Verbindung direkt mit dem PC herzustellen ohne was am Router zu ändern. Einige Programme wie WinMX können das ja auch, wie mach man sowas?MfG
Daniel
-
hi Danielxx
ich hab zwar schon sit ewigen zeiten den WinMX nicht mehr bei mir drauf, aber ich wuerd mal sagen, das der chat ueber den server laeuft. da brauchst am router nix einstellen, weil die verbindung seitens LAN aufgebaut wird. problematischer is es dabei, wenn es ein P2P chat is. du also ne verbindung ueber das inet bekommst. koenntest es insofern loesen, wenn du dir ne art proxy programmierst, die die verteilung im netzwerk vornimmt. dann brauchst am router nur die adresse und den port des proxy´s eintragen. oder eine variable portadresse, die einem server bekannt gegeben werden sollte, der die verteilung der einzelnen client´s vornimmt. dann mußt halt fuer jeden rechner die port-addy dem router bekannt geben.
Deadman
-
Hi,
das müsste aber anders doch auch gehen.
Wie macht das z. B. der Windows messenger oder Spiele wie Counterstrike, Battlefield etc. Wenn ich die online spiele muss ich auch nichts am Router verändern. Oder gibt es die Möglichkeit mit der ip Adresse auch noch die interne lan ip zu übergeben, damit der Router weiß, wohin die Packete geschickt werden müssen?MfG
Daniel
-
Ist eigentlich ganz einfach. Dein Chat baut zu einem Server eine Socket auf. Solange dieser besteht gehen die Packete auch an den richtigen Rechner.
Wenn du nach dem Senden den Socket wieder schließt dann hast du dein beschriebenes Problem.Messenger: Schließt den Connect zum Client nicht mehr sondern übergibt die Messages an den Socket.
-
Und was ist wenn der Chat, der hinter dem Router ist Host ist? Wie können dann die anderen connecten?
-
Man muss am Router die entsprechenden Ports aufmachen und auf den Server im LAN weiterleiten (NAPT etc.)
Das ist doch nicht tragisch.
Ist bei anderen P2P-Programmen auch so (z.B. Emule, Kazaa etc.)
Du musst zu deinem Chat-Programm halt die verwendeten Ports dokumentieren.
-
gibt es keinen Weg dran vorbei?
Es ist kein Problem die Ports freizuschalten, nur nicht jeder hat von Routern eine Ahnung und kann die Ports frieschalten
-
Der Client muss sowieso nicht freigeschaltet werden.
So ist das INET und eine Firewall (z.B. IPMASQADM) aufgebaut und daran kannst du nur was ändern wenn du in den Gremien sitzt die dies spezifizieren.