Hallo
Ich habe begonnen, netzwerk programme zu erstellen. Ich verwende C++ und enet. Das alles funktioniert auch schön, nur kann ich nicht jedem Computer Daten senden, aufgrund der Network Address Translation (NAT). Wie ist es möglich, z.B. ein kleines Chat-Programm zu erstellen, bei dem nur 2 Personen miteinander schreiben, aber jeder Computer kann mit jedem anderen sich verbinden. Das sollte ja wohl ohne einen Server funktionieren...? Ich habe schon von port-forwarding und nat-punchthrough gehört, weiss aber nicht wirklich was das ist bez. wie es funktioniert.
Kann mir jemand einige Informationen zu diesem Thema geben?
Vielen Dank
Netzwerk programmierung
-
- Beiträge: 4
- Registriert: 02.02.2010, 21:56
- Wohnort: Zürich, Schweiz
- Chromanoid
- Moderator
- Beiträge: 4260
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Netzwerk programmierung
Mmh ich fürchte du wirst, wenn die Computer hinter Routern sitzen, i.d.R. immer einen Server brauchen, der als "Treffpunkt" für die beiden "Peers" funktioniert. Du könntest dir mal das STUN Protokoll anschauen. Und selbst mit einem STUN Server als Vermittler kann nicht immer eine P2P Verbindung aufgebaut werden. In so einem Fall muss dann wohl alles von einem öffentlich erreichbaren Server weitergeleitet werden.DominicMoret hat geschrieben:aber jeder Computer kann mit jedem anderen sich verbinden. Das sollte ja wohl ohne einen Server funktionieren...? Ich habe schon von port-forwarding und nat-punchthrough gehört, weiss aber nicht wirklich was das ist bez. wie es funktioniert.
EDIT: hier eine open source impl. des stun protokolls: http://sourceforge.net/projects/stun/
Re: Netzwerk programmierung
Ja, da wirst du nicht um einen Vermittler rumkommen. Ist ein gängiges Problem z.B. auch bei Strategiespielen, die meistens P2P Netzwerk einsetzen (weil man ja nicht will, dass wenn der Host geht, das Spiel für alle aus ist).
Ein Zeiger ins Blaue ist wie ein Wegweiser nach <SEGFAULT>. Wenn du denkst, mein Name hat was mit abgefuckter Kleidung und bunten Haaren zu tun, dann kehr besser um.
Re: Netzwerk programmierung
Hier ist ein Nat-Punchthrough-Algorithmus samt ein paar Informationen zu den Hintergründen beschrieben.