Socket Router - Portforwarding

Status
Nicht offen für weitere Antworten.

slade67

Mitglied
Hallo allerseits,

ich bin dabei eine Anwendung zu schreiben, die auch Chat ermöglicht.
Ich besorge mir per checkip.dyndns.org die jeweilige externe ip des ausführenden clients diese wird mit dem usernamen verpackt in einer datei und auf einen ftp geladen. gleichzeitig läuft der client auch als server und wartet nun auf nachrichten eines anderen clients. neue client starten die anwendung und besorgen sich die alle user files mit der dazugehörigen ip, und verbinden sich mit ihnen. nun zur ersten frage, wenn ich ports forwarde klappt die kommunikation wunderbar, ohne logischerweise nicht.

gibts es noch einen weg über das tcp protokoll bspw. die interne ip als datenpaket mit zu schicken die der router interpretieren kann (quasi getunnelter unicast über externe ip zur internen) oder sind die möglichkeiten bei tcp zu eingeschränkt ?

meine zweite frage wäre, ob es möglich ist da es sich ja um ein p2p netzwerk mit zentralen server handelt, das clients die connecten immer auf denselben port connecten und sich vom jeweiligen server (des anderen clients) einen listen port mitteilen lassen auf welchen sie dann bei bedarf connecten können ?
die idee dahinter ist das es nur einen standard port gibt der als abfrage für die jeweiligen clients dient, diese erhalten seperate listen ports die der server teil der anwendung erstellt, der client erhält diese server antwort trägt sie zur liste des entsprechenden user ein und bei bedarf wird aus der liste der user ip und neuer port hergestellt.
dementsprechend hätte bei 2 usern jeder der user 2 ports benutzt einen als listen und einer als client -> das fürht mich zu der frage ob das überhaupt nötig ist, denn die verbindung geht ja von einem user aus demnach reicht zum chatten ja ein port gibt es da eine alternative ?

im moment kann nur der client nachrichten schicken d.h. jeder user brauch im moment beides.

sorry für den riesen text
und vielen dank für eure mühen.
 
Zuletzt bearbeitet:
T

tuxedo

Gast
Wirklich viel Text so kurz vor meinem Feierabend :)

Habs nicht ganz gelesen, nur überflogen.

Aber hier mal ein Paar Stichworte die du in google füttern kannst:

UPnP
ZeroConf
UDP hole punching

Wenndu einen zentralen Server hast können sich die Clients auch zu dem connecten und der verteilt dann entsprechend die Datenpakete an die entsprechenden Clients. dann brauchst du kein Portforwarding und dergleichen für die Clients.

- Alex
 

slade67

Mitglied
das problem ist das der zentrale server lediglich aus einem ftp server besteht der die userdateien mit enthaltener ip hat. der ftp ordner wird ausschließlich für die userdateien benutzt, diese werden einfach heruntergeladen und vom programm eingelesen.

quasi programm starten -> aktuelle ip ermitteln -> userprofil laden(falls vorhanden) -> ip infos auf ftp uploaden -> alle anderen user dateien vom ftp downloaden -> ip ping der eingelesen user -> rauswerfen der user dessen ip nicht mehr aktuell ist -> programm ist vollständig geladen -> peer 2 peer zu allen usern
 
T

tuxedo

Gast
Einen FTP als "Vermittler" ist noch weit weg von "halbwegs akzeptabel".

Was hast du gegen einen "richtigen" Serverdienst auf einem richtigen Server (oder zur not ein dedizierter Rechner mit Portforwarding an einem DSL-Anschluss)?

Das einzige was dann noch bleibt ist echtes P2P... Aber das wird nicht einfach.

Oder du bleibst dabei dass jeder Client an seinem Router Portforwarding einstellen muss (entweder von Hand oder via UPnP wenn der Router dies erlaubt).

- Alex
 

slade67

Mitglied
prinzipiell spricht nichts dagegen, aber meinen linux server 24/7 online zu haben ist leider aufgrund des strombedarfs für mich keine option, die anwendung soll im prinzip auch nicht mehr als 10 - 20 leute verwalten da sie nur im freundeskreis genutzt werden soll.

vielen dank aber trotzdem schon mal für die schlagwörter, haben mich schon um einiges schlauer gemacht.

grüße

anton
 
T

tuxedo

Gast
Ähm, wenns nur für den Freundeskreis ist und da sich nur 10-20 Leute tummeln: Wieso benutzt du nicht sowas wie Hamachi (google hilft). Da hast du gleich noch den Mehrwert dass du ein VPN hast und darüber alles machen kannst... Das ist auch P2P, du brauchst keinen eigenen zentralen Server und ist mit wenigen Klicks installiert (wirklich kinder einfach).

- Alex
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben