Java Chat-Programm - Leute auf den Server joinen lassen

Trainer Red

Lt. Junior Grade
Registriert
Mai 2014
Beiträge
332
Ich habe 2 Klassen geschrieben; einen Client.java und einen Server.java.

Wenn ich das richtig verstehe, wird der Server ja von mir privat ausgeführt und Freunde, denen ich eine Export-Version von der Client.java geschickt habe, sollten in der Lage sein zu joinen, wenn sie den richtigen Port und MEINE IP benutzen, oder nicht?

Zum besseren Nachlesen:
Client: https://hastebin.com/ewehezogow.java
Server: https://hastebin.com/ekuzemibob.java

Ich verstehe es nicht, ich gebe im Client bei gestartetem Server den richtigen Port und meine IP-Adresse (von myip.is) ein, aber es geht nicht.

Localhost und 127.0.0.1 geht ja, aber was bringt mir das, wenn Freunde den Chat betreten wollen?


Wenn ihr eine Lösung gefunden habt, wäre ich euch sehr dankbar, wenn ihr mir diese mitteilen könntet.

PS: Es gibt einen sehr seltsamen Bug, wenn man auf den Send Button drückt, werden die Nachrichten nicht abgeschickt, erst ab Eingabe durch "Enter". "Enter"-Taste selbst funktioniert jedoch einwandfrei, dabei benutze ich für das Senden die gleiche Methode, woran liegt das?

Vielen Dank!
 
Du bist hinter einem NAT Router. Du musst für den Chat Port ein Forwarding in Router auf deine 192.168.x.x IP die du im LAN hast machen.
 
Ich habe davon noch nie etwas gehört, kannst du mir das noch etwas genau erklären?

Dennoch schon mal vielen Dank! :D
 
Die Syntax, die Du bei addActionListener für den Button verwendest, kenne ich nicht.
Aber Du solltest es mal Oldschool mit der actionPerformed Methode versuchen.
 
Zunächst wirst du ein dynDNS brauchen. Dein Router bekommt spätestens alle 24 Stunden eine neue IP von deinem Provider zugewiesen. Google einfach mal nach dynDNS, da findest du viele Anbieter (z.B. No-IP).
Dann muss du noch alle einkommenden Anfragen auf Port xxx an dein Endgerät (wahrscheinlich dein PC) weiterleiten, dies kannst du in deinem Router konfigurieren
 
Trainer Red schrieb:
Ich habe davon noch nie etwas gehört, kannst du mir das noch etwas genau erklären?
Bitte nenne doch deinen Internetzugang und dein Routermodell.
 
Ich habe einen Telekom Entry und was meinst du mit Internetzugang? DSL, Kabel? Wenn ja, ich glaube ich habe DSL.
Ergänzung ()

Serious_Sam schrieb:
Die Syntax, die Du bei addActionListener für den Button verwendest, kenne ich nicht.
Aber Du solltest es mal Oldschool mit der actionPerformed Methode versuchen.

Das ist ein Lambda-Ausdruck, der lässt sich seit 1.8 (glaube ich) auf Anonyme Klasse mit einer implementierten Methode anwenden, sehr praktisch ^^
 
Speedports der Telekom unterstützen außerdem meistens kein NAT-Loopback, weshalb du innerhalb deines Netzwerks (hinter dem Router) nicht mit der öffentlichen IP auf dein eigenes Netz zugreifen kannst.

Lg, Franz
 
Ich weiß ja nicht einmal, wo ich anfangen soll. Ich kenne mich mit Netzwerken kaum aus. Was muss ich denn nun als erstes tun?
 
Ich würde vorschlagen, wenn Du was netzwerklastiges Programmieren willst und Dich nicht mit Netzwerken auskennst, Dich in das Thema Netzwerke einzulesen...
 
Zurück
Oben