Тайм-аут соединения при запуске клиента сокета в другой сети - PullRequest
0 голосов
/ 12 сентября 2018

Моя проблема в том, что я получаю исключение "java.net.ConnectException: Соединение отказано: соединение", когда я запускаю клиент в другой сети (моя точка доступа). Он отлично работает в той же сети, я думаю, что это проблема с брандмауэром, но даже после включения Eclipse и отключения брандмауэра для всех типов сетей, он все равно не работает.

Клиент:

import java.io.*; 
import java.net.*;  
public class MyClient {  
    public static void main(String[] args) {  
        try{      
            Socket s=new Socket("192.168.0.36",6666);  
            DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
            dout.writeUTF("Hello Server");  
            dout.flush();  
            dout.close();  
            s.close();  
        }catch(Exception e){System.out.println(e);}  
    }  
}

Сервер:

import java.io.*;  
import java.net.*;  
public class MyServer {  
    public static void main(String[] args){  
        try{  
            System.out.println("Server Running");
            ServerSocket ss=new ServerSocket(6666);  
            Socket s=ss.accept();   
            DataInputStream dis=new DataInputStream(s.getInputStream());  
            String str=(String)dis.readUTF();  
            System.out.println("message= "+str);  
            ss.close();  
        }catch(Exception e){System.out.println(e);}  
    }  
} 

1 Ответ

0 голосов
/ 12 сентября 2018

Вам нужно использовать ваш глобальный IP-адрес вместо вашего локального IP-адреса.В настоящее время "192.168.0.36" находится в вашей локальной сети.Если вы хотите получить доступ к нему из другой сети, вам нужно использовать свой глобальный IP-адрес.Существуют некоторые инструменты, которые означают, что вам не нужно запоминать свой глобальный IP-адрес (или выдавать его), например NO-IP . MY-IP также сообщает вам ваш глобальный IP-адрес.

В дополнение к этому, вам также может понадобиться перенести порт 6666 на ваш маршрутизатор.Только посмотрите на это выше, не работает само по себе.Возможно, вам придется сделать оба.Информация о переадресации портов легко доступна в Google в зависимости от производителя вашего маршрутизатора.

Надеюсь, это поможет!

...