Veamos el código que presentamos en el siguiente ejemplo,
minimoServidor.java, donde desarrollamos un mínimo servidor
TCP/IP, para el cual desarrollaremos después su contrapartida
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.
import java.awt.*; import java.net.*; import java.io.*; class minimoServidor { public static void main( String args[] ) { ServerSocket s = (ServerSocket)null; Socket s1; String cadena = "Tutorial de Java!"; int longCad; OutputStream s1out; // Establece el servidor en el socket 4321 (espera 300 segundos) try { s = new ServerSocket( 4321,300 ); } catch( IOException e ) { System.out.println( e ); } // Ejecuta un bucle infinito de listen/accept while( true ) { try { // Espera para aceptar una conexión s1 = s.accept(); // Obtiene un controlador de fichero de salida asociado // con el socket s1out = s1.getOutputStream(); // Enviamos nuestro texto longCad = sendString.length(); for( int i=0; i < longCad; i++ ) s1out.write( (int)sendString.charAt( i ) ); // Cierra la conexión, pero no el socket del servidor s1.close(); } catch( IOException e ) { System.out.println( e ); } } } }
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, minimoCliente.java, 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.
import java.awt.*; import java.net.*; import java.io.*; class minimoCliente { public static void main( String args[] ) throws IOException { int c; Socket s; InputStream sIn; // Abrimos una conexión con breogan en el puerto 4321 try { s = new Socket( "breogan",4321 ); } catch( IOException e ) { System.out.println( e ); } // Obtenemos un controlador de fichero de entrada del socket y // leemos esa entrada sIn = s.getInputStream(); while( ( c = sIn.read() ) != -1 ) System.out.print( (char)c ); // Cuando se alcance el fin de fichero, cerramos la conexión y // abandonamos s.close(); } }
|
[Anterior] [Indice] [Siguiente] |