¿Cómo conecto 2 aplicaciones de servidor websocket Java en Docker?

Tengo 2 aplicaciones Java Spring Boot que conecto por el puerto local 81. El código está bien ya que funciona en Eclipse. Cuando uso docker trato de exponer los puertos y falla. No puedo hacer que las imágenes de la ventana acoplable se conecten entre sí en 2 terminales acoplables separadas.

El código del servidor:

public static void main(String[] args) {
        SpringApplication.run(SpringGetApplication.class, args);
        try {
            final int portNumber = 81;
            ServerSocket serverSocket = new ServerSocket(portNumber);

            while (true) {
                // SOCKET MESSAGE SENDER
                // SOCKET SENDS MESSAGE THEN CLOSES
                Socket socket = serverSocket.accept();
                OutputStream os = socket.getOutputStream();
                PrintWriter pw = new PrintWriter(os, true);

                // PW, PRINTWRITER SENDS STRINGS TO OTHER SERVER
                pw.println("Hello");

                // BUFFEREDREADER READS OTHER SERVER'S MESSAGES
                BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

                // WHILE LOOP TO KEEP READING LINE WHEN THE INPUTS ARE COMING
                String answer = null;
                while ((answer = br.readLine()) != null) {
                    System.out.println(answer);
                }

                pw.println("I HAVE SUCCESSFULLY RECIEVED YOUR DATA");
                pw.close();
                br.close();
            }
        } catch (Exception e) {     }
    }

El código del cliente:

public static void main(String[] args) {
        SpringApplication.run(SpringGetApplication.class, args);

        try {
            final String host = "localhost";
            final int portNumber = 81;

            System.out.println("Creating server socket on port " + portNumber);
            Socket socket = new Socket(host, portNumber);

            // READS RESPONSE FROM THE SERVER
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            // PRINTWRITER USES SOCKET OUTPUT TO SEND THE DATA OUT TO THE OTHER SERVER
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            System.out.println("server says:" + br.readLine());

            String outputTextToCC = "HOWDY THERE, i'M THE CLIENT";
            // OUT SENDS THE STRING TO THE OTHER SERVER
            out.println(outputTextToCC);
            out.println("FINISH");

            // READS RESPONSE FROM OTHER SERVER
            System.out.println("server says:" + br.readLine());
            br.close();
            socket.close();

        } catch (Exception e) {     }
    }

Creé imágenes de Docker para ambos y ejecuto las 2 imágenes en terminales Docker separadas.

  • Terminal 1 (aplicación de mi servidor): docker run --expose=81 contactcentre2
  • Terminal 2 (aplicación My Client): docker run --expose=81 contactcentretest

ingrese la descripción de la imagen aquí

Intenté exponer el puerto 81 pero mi aplicación cliente todavía no se puede conectar al otro servidor.

Respuesta 1

Básicamente tengo que escribir un applet de Java que produce una tarjeta de visita. La parte en la que estoy atascado es descubrir cómo mostrar una imagen de mí mismo en el applet. La parte que me confunde en mi ...

Posible duplicado: Desarrollo para Android en Eclipse: R.java no genera Im usando Ubuntu 12.04 con Eclipse Indigo (descargué el clásico, y apareció con eso en la pantalla de inicio, así que ...

Estoy trabajando en un adaptador Polarion para poder comunicar Polarion con otras herramientas. Mi conector se basa en el estándar OSLC, Polarion no es totalmente compatible con el estándar OSLC, así que necesito usar ...

Estoy trabajando con PDFBox v2 y boxable y necesito generar una celda con 2 filas dentro. Intenté hacer que la wiki explica, pero en mi aplicación el contenido de la celda se imprime literalmente. El código para generar interior ...