Witam, mam problem z połączeniem się do serwera z innych komputerów, nie powiązanych z moim ip. Próbowałem uczynić to przez hamachi, jednak efekty były mizerne.
Dodam, że jeśli próbuję podłączyć się przez localhost, to nie ma najmniejszego problemu z działaniem programu.
Błąd jest zwracany po stronie clienta w tej pętli try{}catch{}:
W kodzie program automatycznie pobiera ip lokalne, jednak nawet po wpisywaniu ip z hamachi dalej wyskakuje ten sam error message
try{
String local;
try{
local = InetAddress.getLocalHost().getHostAddress() + ":" + port;
}catch(UnknownHostException ex)
{
local = "Network Error";
}
ip = (String) JOptionPane.showInputDialog(null, "IP: ", "Info", JOptionPane.INFORMATION_MESSAGE, null, null, local);
port = Integer.parseInt(ip.substring(ip.indexOf(":") + 1));
ip = ip.substring(0, ip.indexOf(":"));
socket = new Socket(ip, port);
username = (String) JOptionPane.showInputDialog(null, "Username: ", "Info", JOptionPane.INFORMATION_MESSAGE, null, null, username);
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
oos.writeObject(username);
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
String response = (String) ois.readObject();
JOptionPane.showMessageDialog(null, response, "Message", JOptionPane.INFORMATION_MESSAGE);
if(response.equals("Your name is already taken!"))
{
System.exit(0);
}
new Thread(send).start();
new Thread(receive).start();
}catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "Error: błąd w metodzie client", "Alert", JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
Jeśli zajdzie potrzeba pokazania większej części kodu zarówno serwera jak i clienta proszę pisać w postach.