Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Lothic 23. 12. 2018, 20:00:18
-
Ahoj,
dokončil jsem chatovou aplikaci v javě fx. Celou dobu jsem vyvíjel s tím, že server i klienti běží na localhostu, takže všechno šlo v pohodě. Dneska jsem to chtěl vyzkoušet už "na ostro", nicméně problém je, že se nikdo nemůže připojit na server, který jsem zkoušel rozběhnout na stolním PC.
Čili jsem zkusil udělat následující:
1. Našel jsem si v ipconfig /all Ipv4, masku, dns, default gateway
2. V nastavení adapteru jsem změnil Ipv4 (vlastnosti) těmi hodnotami, které tam byly vypsané + Ipv4 adresu jsem změnil na tu adresu, co byla psaná v tom výpisu a poslední číslici jsem zvýšil o 10.
3. Poté jsem šel do prohlížeče do nastavení routeru. Dal jsem forwarding: ServicePort = 5000, Internal Port = 5000; IP adresu tu, kterou jsem zadal do toho nastavení IPv4, Protocol UDP i TCP, Status = enabled...
Bohužel bez účinku, pořád se nikdo nemůže připojit...
Jak to řešit? Nebo co jsem udělal blbě a jak to mám udělat dobře, aby to šlo?
Děkuji
-
Já si tipnu, že jsi zapomněl změnit IP v serverové části aplikace: tvůj server očekává komunikaci pouze na localhostu a ne na IP adrese počítače, na kterém by byla aplikace dostupná na síti. Nastav aby serverová aplikace poslouchala na 0.0.0.0
https://en.wikipedia.org/wiki/0.0.0.0
-
netstat -tlpn, pokus o telnet na ten port odjinud, tcpdump na zdrojovém, cílovém počítači i na tom routeru co dělá forwarding
-
Nojo, termíny odevzdání semestrálek se blíží :)
-
Já si tipnu, že jsi zapomněl změnit IP v serverové části aplikace: tvůj server očekává komunikaci pouze na localhostu a ne na IP adrese počítače, na kterém by byla aplikace dostupná na síti. Nastav aby serverová aplikace poslouchala na 0.0.0.0
https://en.wikipedia.org/wiki/0.0.0.0
Toto bohužel nepomohlo. Můj kod na straně serveru vypadá takto:
public void start() {
try (ServerSocket serverSocket = new ServerSocket(5000, 100, InetAddress.getByName("0.0.0.0"))) {
while (true) {
ClientHandler clientHandler = new ClientHandler(serverSocket.accept());
new Thread(clientHandler).start();
}
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
}
Klient se snaží napojit na tu adresu, kterou jsem nastavil do toho port forwarding v tom routeru...
-
Na lokální síti použiješ lokální adresu a port forwarding nepotřebuješ.
Jinak (z Internetu) se klient připojuje na veřejnou adresu toho routeru a port forwarding na routeru přesměruje ten port na určenou adresu:port v lokální síti.