##
CLIENTE/SERVIDOR TCP/IP

#### Mínimo Servidor TCP/IP

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 );
                    }
                }
            }
        }

#### Mínimo 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, 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]