Entwickler-Ecke
Sonstiges (.NET) - Per C# ein Chatprogramm ohne Lokale Ip's
Ccenter - Sa 24.07.10 14:05
Titel: Per C# ein Chatprogramm ohne Lokale Ip's
Hallo,
ein Freund und ich haben gestern einfach mal aus Spaß versucht ein Chatprogramm zu schreiben.
Wir haben das dann ersteinmal bei mir Zuhause mit lokalen Ip's getestes, was auch dann auch alles gut geklappt hat bis auf ein paar "Kinderkrankheiten".
Der Client konnte sich gut mit dem Server verbinden etc...
Nunja, er hat das Programm dann halt mit nach Hause genommen und wir wollten dann per Telefon irgendwie probieren, das Programm übers Internet (ausserhalb des Netzwerkes)
zum laufen zu bekommen. Uns war natürlich klar, dass die lokalen Ip's dort keinen Sinn mehr hatten.
Das Problem besteht nun aber darin, dass von uns beiden dynamische Ip's verwendet werden und da wir beide hinter einem Router sitzen, "Nat" dafür sorgt das
der Client den Server nicht mehr erreichen kann.
Vorab: Besteht mit C# überhaupt die Möglichkeit durch Nat zu kommen? Wenn ja wäre mir da ein Tipp sehr gelegen... :D
So, da wir an dieser Stelle nicht weiter gekommen sind, hatte ich die Idee, irgendwie einen Webserver auf die Beine zu stellen, der dann sozusagen als "Verteiler" fungiert und wir beide jeweils einen Clienten verwende, der den Webserver "anruft" und die Daten dann irgendwie von diesem auch abholt. So wäre das Problem mit Nat ersteinmal umgangen.
Ist das der richtige Weg dafür?
Flitzs - Sa 24.07.10 17:22
Ccenter hat folgendes geschrieben : |
Vorab: Besteht mit C# überhaupt die Möglichkeit durch Nat zu kommen? Wenn ja wäre mir da ein Tipp sehr gelegen... :D
|
Das hat mit C# direkt nichts zutun. Es gibt mehrere Möglichkeiten, ein Programm über NAT laufen zu lassen.
Einerseits kann man natürlich den Port im NAT-Device (ich nehme an einem Router) manuell
weiterleiten [
http://de.wikipedia.org/wiki/Portweiterleitung] lassen.
Wenn du diest nicht möchtest gibt es noch die Möglichkeit, dies über
UPnP [
http://de.wikipedia.org/wiki/Universal_Plug_and_Play#Praktischer_Einsatz] aus dem Programm heraus einzurichten (sofern das NAT-Device dies unterstützt).
Ccenter hat folgendes geschrieben : |
So, da wir an dieser Stelle nicht weiter gekommen sind, hatte ich die Idee, irgendwie einen Webserver auf die Beine zu stellen, der dann sozusagen als "Verteiler" fungiert und wir beide jeweils einen Clienten verwende, der den Webserver "anruft" und die Daten dann irgendwie von diesem auch abholt. So wäre das Problem mit Nat ersteinmal umgangen.
Ist das der richtige Weg dafür? |
Hier gibt es 2 (mir bekannte) Möglichkeiten wie ihr damit zu Ziel kommt:
- Die Programme können sich beim Start am Server anmelden und kommunizieren über den Server miteinander. Der Server leitet einfach alle Nachrichten von A nach B weiter und umgekehrt
- Oder ihr benützt UDP hole punching [http://en.wikipedia.org/wiki/UDP_hole_punching] bzw. TCP hole punching [http://en.wikipedia.org/wiki/TCP_hole_punching]
Was für eure Zwecke am geeignestens ist, müsst ihr selbst entscheiden.
mfg Flitzs
Ccenter - Mo 26.07.10 15:13
Ok danke, wir habens zum Laufen bekommen =)
Es hat gereicht in der Fireall einzustellen, dass ein bestimmter Port
zu mir/ihm weitergeleitet werden soll.
Yogu - Mo 26.07.10 17:08
Ccenter hat folgendes geschrieben : |
Das Problem besteht nun aber darin, dass von uns beiden dynamische Ip's verwendet werden |
Falls das immer noch ein Problem sein sollte (ist ein bisschen doof, über das Telefon IP-Adressen auszutauschen, bevor man über's Internet chatten kann ;)), schau dir mal
dyndns.com [
http://www.dyndns.com/] an :idea:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!