Vous êtes sur la page 1sur 2

Crear clientes y servidores TCP.

-
De repente, aparece el Director General y dice: "Necesitamos un modo secreto de
comunicarnos por Internet con nuestros espías informáticos".
"Pero... ¿Tenemos espías?" preguntas.
Y el gran jefe dice: "Configure un programa cliente/servidor que permita
comunicarse a través de Internet y asegúrese de que todo está codificado".
"¡Vaya!...".

Utilizando los objetos BufferedReader y PrintWriter, puede comunicarse en


Internet con sockets; todo lo que necesita es una dirección DNS del servidor y un
puerto libre en dicho servidor (las direcciones DNS son grupos de cuatro números,
separados por puntos, que especifican direcciones de Internet).

Compruebe un ejemplo. En este caso, se configuró un programa cliente que se


conecta a un programa servidor, envía un mensaje, y obtiene un mensaje de
respuesta. En este caso, utilizaremos el DNS 127.0.0.1 (host local), lo que significa
que tanto el cliente como el servidor estarán en la misma máquina. Sin embargo,
puede utilizar cualquier DNS que desee mientras sitúe el script del servidor en la
máquina correspondiente. Usaremos un puerto arbitrario (el número 8765). Cuando
esté escogiendo un número de puerto, recuerde que ese puerto no puede estar en uso
y que tanto el cliente como el servidor se conectarán al mismo puerto. Esta es la
aplicación cliente, que envía el mensaje "¡Hola!" al servidor y lee lo que le devuelve
éste:

import java.net.*;
import java.io.*;

class client
{
public static void main(String args[]) throws Exception
{
int character;
Socket socket = new Socket("127.0.0.1", 8765);

InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();

String string = "¡Hola!\n";


byte buffer[ ] = string.getBytes();
out.write (buffer);

while ((character = in.read()) != -1) {


System.out.print ((char) character);
}
socket.close( );
}
}

Y ésta es la aplicación del servidor, que lee el mensaje del cliente y contesta al
mismo, después del mensaje "Respuesta del servidor":
import java.io.*;
import java.net.*;

public class server


{
public static void main(String[] args )
{
try {
ServerSocket socket = new ServerSocket (8765);

Socket insocket = socket.accept ( ) ;

BufferedReader in = new BufferedReader (new


InputStreamReader(insocket.getInputStream( ) ) );
PrintWriter out = new PrintWriter (insocket.getOutputStream(),
true);

String instring = in.readLine( );


out.println("Respuesta del servidor: " + instring);
insocket.close( );
}
catch (Exception e) { }
}
}

Para ejecutar estas aplicaciones, necesitará dos ventanas de trabajo (por ejemplo,
en Windows, abra dos ventanas de DOS). Ejecute primero el servidor en una ventana,
y después el cliente en la otra. Cuando lo haga, observe lo que muestra el cliente:

C:\>java client
Respuesta del servidor: ¡Hola!

Como puede ver, el cliente envía su mensaje al servidor, que devuelve un


mensaje de confirmación. Ahora ya puede preparar aplicaciones cliente/servidor
para Internet en Java.

Vous aimerez peut-être aussi