
|
Secretaria:
Descripción del funcionamiento: En las líneas 15 y 16 declaramos las variables globales que almacenarán el puerto y la dirección de red donde nos conectaremos, en este caso la dirección 127.0.0.1 es universal y permite conectarse a la misma máquina así que podremos ejecutar el programa de la secretaria y la telefonista en la misma PC en consolas de comandos diferentes, si estamos en el laboratorio con más de 1 PC en RED, entonces en ese número pondremos el que nos comente el administrador del sistema para conectarnos a la PC que correrá la telefonista. En la línea 18 comienza nuestro método principal y de la misma manera que en el programa anterior definimos el Socket (skt) como un elemento vacío sin inicializar, ya que estamos obligados a revisar errores. Entre las líneas 21 a 25 comprobamos que se pueda hacer una conexión al puerto y dirección de red indicados, puede suceder que el error no sea exactamente que la telefonista no está en línea y que el sistema operativo esté denegando el acceso a conectarse al exterior, por ello revisar el firewall del sistema o los permisos necesarios. Si nos pudimos conectar el programa siguió adelante y procedemos a crear un objeto BufferedReader para manipular la entrada por teclado y declaramos una variable tel que almacenará un teléfono para enviar. En la línea 29 comienza el bloque donde abriremos la conexión de datos remota por medio de un flujo de datos del tipo ObjetOutputStream. Como en el componente anterior utilizamos un bucle eterno para la ejecución del programa que saldrá por otros mecanismos. (línea 33). En la línea 34, asignamos el valor que se lee por teclado a la variable tel, ese segmento está entre paréntesis porque porque ese mismo valor asignado lo compararemos antes de proseguir, podríamos haber hecho primero la asignación y después la comparación. Si la secretaria escribió -1 enviamos el -1 a la telefonista para avisarle que terminamos, (línea 36), la orden datos.fluxh(); vacía los datos de memoria RAM al flujo de datos inmediatamente y en las líneas 38 y 39 cerramos debidamente el flujo de datos y la conexión de red antes de salir sin producir error, salir con el código 0 es no producir error. En la línea 41 comienza el bloque de datos que se ejecutará caso contrario a que la secretaria ingrese un -1. Donde podemos ver que escribimos en el flujo de datos el número entero correspondiente al teléfono y obligamos la escritura inmediata con la orden flush();. Termina el bucle etenro while(true){} termina el bloque de control de errores y el método principal, a continuación están la función auxiliar leerInt que no explicaremos porque es la misma que vimos en el capítulo anterior. Nota: Veremos con más detalles el uso de sockets durante el transcurso del libro, no ahondaremos en ello ahora. Queda como ejercicio para el lector producir el error de Buffer Overrun y revisar en la documentación electrónica los métodos y objetos utilizados de la biblioteca de Java. leavecomment |
|
|||||||||||||||||||||||
*Hasta que esta leyenda no desaparezca el libro no ha sido terminado, descarge en pdf:
http://compunauta.com/forums/linux/programacion/java/ebook.html