Написал простой чат без GUI. Когда подключаюсь к серверу по локальному IP, то подключение происходит. Как только пытаюсь через "внешний", то подключения нет. Порты открывал и в брандмауре (совсем отключал, создавал ислючения) и на модеме. Не знаю что делать. Пытался через DNS или что-то типа такого, но ничего не поменялось
Запуск сервера
System.out.println("Server running...");
try (ServerSocket serverSocket = new ServerSocket(8189);) { //8189
while (true) {
try {
new TCPConnetion(this, serverSocket.accept());
} catch (Exception e) {
System.out.println("Error with connection" + e);
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
Клиент
public TCPConnetion(TCPConnetcionListenner eventListener,String idAdr, int port) throws Exception{
this( eventListener, new Socket(idAdr,port));
}
public TCPConnetion(TCPConnetcionListenner eventListener, Socket socket) throws Exception {
this.eventListener = eventListener;
this.socket = socket;
in = new BufferedReader(new InputStreamReader(socket.getInputStream(), Charset.forName("UTF-8")));
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), Charset.forName("UTF-8")));
rxThread = new Thread(new Runnable() {
@Override
public void run() {
try {
eventListener.onConnetcion(TCPConnetion.this);
while (!rxThread.isInterrupted()) {
String msg = in.readLine();
eventListener.onReceiveString(TCPConnetion.this, msg);
}
} catch (IOException e) {
eventListener.onExcetion(TCPConnetion.this,e);
} finally {
eventListener.onDisconnect(TCPConnetion.this);
}
}
});
rxThread.start();
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости