You are here
JAVA: CONSTRUCCIÓN DE UN SERVIDOR TCP-IP Sin categoría 

JAVA: CONSTRUCCIÓN DE UN SERVIDOR TCP-IP

JAVA: CONSTRUCCIÓN DE UN SERVIDOR TCP-IP

La clase Servidor TCP-IP

Veamos el código que presentamos en el siguiente ejemplo, donde desarrollamos un servidor     TCP/IP,     para     el     cual     desarrollaremos luego su cliente TCP/IP. La aplicación servidor   TCP/IP   depende   de   una   clase   de   comunicaciones   proporcionada   por   Java: ServerSocket. Esta clase realiza la mayor parte del trabajo de crear un servidor.

 

Ejemplo:

 

 

import java.io.BufferedReader;

 

 

import java.io.IOException;

 

 

import java.io.InputStreamReader;

 

 

import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket;

public class Servidor {

 

 

public static void main(String [] args) { ServerSocket  s; //Socket servidor Socket  sc; //Socket cliente PrintStream  p; //Canal de escritura BufferedReader  b; //Canal de Lectura String mensaje;

try {

 

//Creo el socket server

 

 

s = new ServerSocket (9999);

 

 

//Invoco el metodo accept del socket servidor, me devuelve una referencia al socket cliente

 

sc = s.accept();

 

 

//Obtengo una referencia a los canales de escritura y lectura del socket cliente b = new BufferedReader ( new InputStreamReader ( sc.getInputStream() ) );

p = new PrintStream  ( sc.getOutputStream() );

 

 

while ( true ) {

 

 

//Leo lo que escribio el socket cliente en el canal de lectura mensaje = b.readLine();

System .out.println(mensaje);

 

 

//Escribo en canal de escritura el mismo mensaje recibido p.println(mensaje);

if ( mensaje.equals(“by”)) {

 

 

break;

 

 

}

 

 

} p.close(); b.close(); sc.close();

 

s.close();

 

 

} catch (IOException  e) {

 

 

System .out.println(“No puedo crear el socket”);

 

 

}

 

 

}

 

 

}

 

 

 

 

 

La clase Cliente TCP/IP

 

 

El lado cliente de una aplicación TCP/IP descansa en la clase Socket. De nuevo, mucho del trabajo necesario para establecer la conexión lo ha realizado la clase Socket. Vamos a presentar ahora el código de nuestro cliente más simple, que encaja con el servidor presentado antes. El trabajo que realiza este cliente es que todo lo que recibe del servidor lo imprime por la salida estándar del sistema.

 

Ejemplo:

 

 

import java.io.BufferedReader;

 

 

import java.io.IOException;

 

 

import java.io.InputStreamReader;

 

 

import java.io.PrintStream;

 

 

import java.net.Socket;

 

 

import java.net.UnknownHostException;

 

 

public class Cliente {

 

 

public static void main(String [] args) {

 

Socket  s; PrintStream  p; BufferedReader  b;

String host = “localhost”;

 

 

int port = 9999; String respuesta;

//Referencia a la entrada por consola (System.in)

 

 

BufferedReader  in = new BufferedReader (new InputStreamReader (System .in));

 

 

try {

 

 

//Creo una conexion al socket servidor s = new Socket (host,port);

//Creo las referencias al canal de escritura y lectura del socket p = new PrintStream (s.getOutputStream());

b = new BufferedReader  ( new InputStreamReader ( s.getInputStream() ) );

 

 

while ( true ) {

 

 

//Ingreso un String por consola

 

 

System .out.print(“Mensaje a enviar: “);

 

 

//Escribo en el canal de escritura del socket p.println( in.readLine() );

//Espero la respuesta por el canal de lectura

 

respuesta = b.readLine(); System .out.println(respuesta); if ( respuesta.equals(“by”)) {

break;

 

 

}

 

 

} p.close(); b.close(); s.close();

} catch (UnknownHostException e) {

 

 

System .out.println(“No puedo conectarme a ” + host + “:” + port);

 

 

} catch (IOException  e) {

 

 

System .out.println(“Error de E/S en ” + host + “:” + port);

 

 

}

 

 

}

 

 

}

 

 

 

 

 

Nota: se deben compilar los dos (2) archivos, ejecutándose ambos por separados (1ro el servidor), en el archivo cliente se encargara de enviar información al servidor, el servidor solo recibirá la información y la mostrara por pantalla.


Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros

Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Related posts