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