Java Networking: Verbindung abgelehnt - Ja, mein Server läuft

Ich erhalte folgende Fehlermeldung, wenn mein Client versucht, eine Verbindung zu meinem Server-Socket herzustellen:

java.net.ConnectException: Connection refused: connect

Aber mein Server läuft wirklich auf demselben Computer. Ich versuche eine Verbindung herzustellen, indem ich die externe IP meines Routers verwende. Aber wenn ich versuche mich mit @ zu verbind"localhost", Es klappt. Und ja, ich habe die Portweiterleitung in meinem Router korrekt durchgeführt. Sogarcanyouseeme.org kann sich mit meinem Server verbinden (Die Seite sagt: "Erfolg" und in meinem Server-Log erscheint, dass jemand mit dem Server verbunden ist.)

Also, ist es aus dem einen oder anderen Grund unmöglich, über eine externe IP-Adresse eine Verbindung zu demselben Computer (oder zu einem Computer im selben Netzwerk) herzustellen? Oder ist das typisch für Windows? (Normalerweise benutze ich Linux)

ch habe auch versucht, die Windows-Firewall vollständig zu deaktiviere

ServerSocket:

public ServerSocket ssocket;
public List<ClientHandler> handlers;

public Server(int port) { // Constructor
    try {
        ssocket = new ServerSocket(port);
        this.handlers = new ArrayList<ClientHandler>();
        IpSharingManager.uploadData(Utilities.getPublicIp(), port);
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(-1);
    }
}

Klient

public InvisibleClient(String host, int port) {
    try {
        System.out.println("Trying to connect to " + host + ":" + port);
        this.host = host;
        this.socket = new Socket(host, port);
        this.bis = new BufferedInputStream(this.socket.getInputStream());
        this.bos = new BufferedOutputStream(this.socket.getOutputStream());
        this.console = new RemoteConsole(this.socket);
        initializeCommunication();
        System.out.println("Successfully connected!");
        new Thread(this, "Client Thread").start();
    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("No server available");
    }
}

Vielen Dan

Antworten auf die Frage(8)

Ihre Antwort auf die Frage