servidor interfaz hacer grafica fuente entre ejemplo datos con codigo cliente chats básico java networking

interfaz - Red Java: se rechazó la conexión. Sí, mi servidor se está ejecutando



hacer un chat en java swing (4)

¿Has intentado ejecutarlo con la opción JVM: java.net.preferIPv4Stack=true ?

Recibo un error de seguimiento cuando mi cliente intenta conectarse a mi socket de servidor:

java.net.ConnectException: Connection refused: connect

Pero, mi servidor realmente se está ejecutando, en la misma máquina. Intento conectarme usando la IP externa de mi enrutador. Pero cuando intento conectarme con "localhost" , funciona. Y, sí, hice el reenvío de puertos correctamente en mi enrutador. Incluso canyouseeme.org puede conectar a mi servidor (el sitio dice: "éxito" y en mi registro de servidor aparece que alguien se conectó con el servidor).

Entonces, ¿es por una u otra razón imposible conectarse a la misma máquina (oa una máquina en la misma red) a través de una IP externa? ¿O es esto algo típico de Windows? (Normalmente, uso Linux)

También traté de desactivar por completo Windows Firewall.

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); } }

Cliente:

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"); } }

Gracias


Agregue el proceso java.exe y el puerto a su lista de excepciones de firewall?

editar: acaba de leer que ya has intentado eso. Todo lo que puedo sugerir es asegurarse de que la red no esté bloqueando ese puerto. (enrutadores)


Algunos enrutadores no permiten que la red interna se conecte a la dirección IP externa del enrutador.

Puede intentar usar telnet para conectarse a su socket de servidor. Si telnet no puede establecer una conexión, es probable que sea un problema de red.


Por lo que veo en tu código, te perdiste la parte en la que aceptas la conexión, luego de crear una instancia del socket del servidor necesitas que ssocket.accept () acepte las conexiones y luego debes comenzar a leer el outputtrem desde el socket