¿Cuál es el método para conectar servidor a servidor con Java?

A menos que planee usar una biblioteca de algún tipo, lo más probable es que use la clase Socket. Java tiene dos sockets integrados, el Socket y el ServerSocket. El Socket Genérico se usa para su cliente, mientras que ServerSocket (puede haberlo adivinado) es para su servidor.

Aquí hay un servidor de ejemplo:

ServerSocket listener = nuevo ServerSocket (9090);
tratar {
while (verdadero) {
Socket socket = listener.accept ();
tratar {
PrintWriter out = new PrintWriter (socket.getOutputStream (), verdadero);
out.println (nueva fecha (). toString ());
} finalmente {
socket.close ();
}
}
}

Esto escuchará una conexión entrante en el puerto 9090, una vez que se recibe una conexión, enviará la hora y fecha actuales antes de cerrar la conexión.

Aquí está el código del cliente:

Socket s = nuevo Socket (serverAddress, 9090);
BufferedReader input = new BufferedReader (new InputStreamReader (s.getInputStream ()));
Cadena respuesta = input.readLine ();

Este código enviará una conexión al servidor (también en el puerto 9090), donde serverAdress es la dirección IP del servidor o su nombre de host, y luego establece la variable de respuesta a lo que responda el servidor (que sabemos que será el momento y el momento fecha).

Como ha mencionado Tony Stew, usted usa un Socket (cliente) para conectarse a un ServerSocket (escucha del servidor).

Pero supongamos que tiene el servidor A escuchando a través de ServerSocket hasta el número de puerto 2000. Y también tiene el servidor B escuchando en su número de puerto 3000. Ahora desea que el servidor A pregunte algo al servidor B … ¿Cómo hacer eso?

Simple … A también se convierte en cliente, no es imposible tener varios enchufes abiertos al mismo tiempo. Crea un Socket que envía una solicitud de conexión a la dirección del Servidor B en el puerto 3000. Puede significar que necesita ejecutar esto en un hilo separado si la conexión ServerSocket está acaparando el hilo principal del programa.

En cualquier caso, realmente debería considerar colocar su escucha de socket del servidor en su propio hilo para que su programa pueda continuar haciendo otra cosa. Esto es especialmente cierto si su programa tiene algún tipo de GUI, pero siempre es una buena idea de todos modos. Solo se trata de servidores muy simples que no necesitan ejecutarse dentro de un hilo hecho manualmente.

Puede usar WebServices, Sockets, intercambiar archivos, depende de lo que quiera hacer.