Anda di halaman 1dari 6

Fecha de efectividad: __________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formato para prcticas de laboratorio


CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA

IC y LSC
PRCTICA No.

2003-1
LABORATORIO DE NOMBRE DE LA PRCTICA

5038

Programacin Orientada a Objetos II


DURACIN (HORA)

Sockets

1 INTRODUCCIN Un socket de Internet, socket de red o simplemente socket, es una herramienta para permitir la comunicacin bidireccional entre dos computadoras conectadas en una red basada en IP. En este contexto, el socket es una abstraccin de software en la cual se combina una direccin IP con un nmero de puerto en una sola entidad. As, el socket se convierte en una interfaz entre un proceso o hilo de una aplicacin y la pila de protocolos IP proporcionada por el sistema operativo, siendo el primer paso en el establecimiento del flujo de datos entre una aplicacin con otro proceso o servicio. En Java, las clases de sockets se utilizan para representar la conexin entre aplicaciones funcionando bajo una arquitectura cliente-servidor. El paquete java.net proporciona dos clases Socket y ServerSocket que implementan el lado del cliente y el lado del servidor en la conexin, respectivamente.

2 OBJETIVO (COMPETENCIA)

Crear una aplicacin que utilice un servicio de la red para obtener informacin y representarla de una manera adecuada.

Formul M.C. Jorge Eduardo Ibarra Esquer Maestro

Revis M.C. Gloria Etelbina Chavez Valenzuela y LSC Mnica Lam Mora Coordinador de carrera

Aprob

Autoriz M.C. Miguel ngel Martnez Romero Director de la Facultad


Cdigo GC-N4-017 . Revisin Octubre 2007 .

Gestin de la Calidad

Pgina 1 de 6

Fecha de e efectividad: ___________ _ ________

UN NIVERSIDAD D AUTNOM MA DE BAJ JA CALIFOR RNIA FA ACULTAD DE D INGENIE ERA (UNIDAD MEXICA ALI) DOCUME ENTO DEL SISTEMA S DE E CALIDAD D

F Formato para pr rcticas s de lab boratorio o


3 FUNDAM MENTO Un n socket de In nternet es id dentificado por p el sistema a operativo como c una co ombinacin de d los siguie entes ele ementos: olo (TCP, UD DP, etc.) Protoco Direcci in IP local Nmero o de puerto local l Cu uando el sock ket ya se ha establecido, tambin se incluyen: Direcci in IP remot ta Nmero o de puerto remoto r El sistema oper rativo se enc carga de redi irigir la informacin recibida a trav s del socket t hacia el pro oceso cor rrespondient te. r medio de sockets, s pode emos escribi ir aplicacion nes basadas en e el modelo o cliente-serv vidor. Normalmente, un Por ser rvidor se ejec cuta en una computadora c a especfica y tiene un so ocket vincul lado a un puerto especfi ico. El ser rvidor simple emente espe era, permitien ndo que el so ocket escuc che las solic citudes de co onexin de los l clientes. En n el lado del cliente, c ste conoce la di ireccin de la l computado ora en que se ejecuta el servidor y el l nmero del l pue erto al que se encuentra conectado. Para P solicitar una conexi in, el client te trata de en ncontrarse co on el ser rvidor en su computador ra y puerto.

Si todo t funcion na correctam mente, el serv vidor acepta la conexin n. Una vez ac ceptada, ste e abre un nue evo socket en un puerto di iferente. Se necesita n un nuevo n socke et (y, en cons secuencia, un n nmero de e puerto disti into) de ma anera que el socket origin nal pueda se eguir recibien ndo solicitud des de conex xin de los clientes. c

En n el cliente, si se acepta la a conexin, se crea un so ocket que pu uede utilizarse para comu unicarse con n el servidor. A este e socket se s le asigna un u puerto loc cal en la com mputadora en n la que se ej jecuta el clie ente, el cual no nec cesariamente e es el mism mo nmero de e puerto que el del socke et del servido or. En n este momen nto, el client te y el servid dor pueden comunicarse escribiendo y leyendo a travs de su us sockets.

Pg gina 2 de 6

Cdigo GC-N4-017 . Revisin Octubre 2007 .

Fecha de efectividad: __________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formato para prcticas de laboratorio


La edicin estndar de Java proporciona algunas clases para trabajar con sockets. Estas clases se encuentran en el paquete java.net. La clase java.net.Socket nos permite establecer la comunicacin entre dos aplicaciones a travs de un socket. Podemos crear sockets cliente utilizando los diversos constructores de esta clase. Uno de ellos, recibe como parmetros el nombre del servidor y el puerto donde se desea abrir la conexin. Su declaracin es la siguiente: public Socket(String host, int port); Un ejemplo de su uso es el siguiente: Socket s; s=new Socket(yaqui.mxl.uabc.mx,80); En este caso, al invocar al constructor de la clase, se abrir una conexin al puerto 80 de la computadora denominada yaqui.mxl.uabc.mx. Este primer parmetro puede ser tambin la direccin IP de la computadora. Al intentar abrir un socket se pueden presentar diversas excepciones. Para el constructor del ejemplo, si no se puede determinar la direccin de destino, se arrojar una excepcin del tipo UnknownHostException. Adems, si por alguna razn la conexin no pudiera establecerse, se arrojar una excepcin del tipo IOException. La comunicacin a travs de sockets se realiza a bajo nivel. Para que las aplicaciones interactuen de manera adecuada, ambas deben conocer los detalles del protocolo que se est utilizando. De esta forma, el servidor puede entender las solicitudes del cliente y responder de manera adecuada; y el cliente puede entender la informacin enviada por el servidor para poder representarla de la manera que ms le convenga. Una vez abierto el socket, la comunicacin se realiza a travs de los flujos de entrada y salida asociados al mismo. Estos pueden obtenerse de la siguiente forma: BufferedReader entrada=new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter salida=new PrintWriter(s.getOutputStream()); Las clases BufferedReader y PrintWriter se encuentran en el paquete java.io. De la manera ejemplificada, se obtienen objetos a partir de los cuales podemos leer y escribir flujos de caracteres. En caso de flujos de bytes, se pueden utilizar algunas de las otras clases del paquete java.io. Un protocolo sencillo de utilizar es el Finger. Este protocolo nos proporciona informacin acerca de los usuarios de un sistema. Una sesin de finger es como sigue:

Pgina 3 de 6

Cdigo GC-N4-017 . Revisin Octubre 2007 .

Fecha de efectividad: __________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formato para prcticas de laboratorio


Servidor: Espera conexiones en el puerto 79. Cliente: Abre conexin al puerto 79 del servidor. Cliente: Enva comando al servidor. Servidor: Enva respuesta. Servidor: Cierra la conexin. Cliente: Cierra la conexin. El comando puede ser un nombre de usuario, una parte del nombre real de algn o algunos usuarios o un comando nulo (caracter de salto de lnea). En los primeros dos casos, la respuesta ser la informacin completa de todos los usuarios que cumplan con el criterio de bsqueda. En el ltimo caso, la respuesta sern los datos de los usuarios con una sesin abierta en ese momento.

4 PROCEDIMIENTO (DESCRIPCIN)
A EQUIPO NECESARIO MATERIAL DE APOYO

Computadoras con una versin reciente del Java Development Kit JDK y acceso a Internet.

Pgina 4 de 6

Cdigo GC-N4-017 . Revisin Octubre 2007 .

Fecha de efectividad: __________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formato para prcticas de laboratorio


B DESARROLLO DE LA PRCTICA

1. Escribir una aplicacin en Java que funcione como un cliente para el protocolo finger. Utilizar para la conexin el servidor tiburon.mxl.uabc.mx. La aplicacin se conectar al servidor a travs de un socket. El servidor finger espera conexiones en el puerto 79. Escribir en una clase en los mtodos necesarios para la conexin e interaccin con el servidor. Probar la aplicacin enviando los criterios de bsqueda desde la lnea de comando. Mostrar la respuesta del servidor en la consola. Al terminar de ejecutarse la aplicacin, debern cerrarse la sesin con el servidor y el socket.

2. Programar una aplicacin grfica con la cual se pueda interactuar con el servidor finger. Utilizar la clase programada en la parte anterior de la prctica para el funcionamiento del cliente. La entrada de los criterios de bsqueda ser por medio de un campo de texto. La respuesta se presentar en un rea de texto. Agrega barras de desplazamiento para poder ver la respuesta completa, en caso de que sta sea muy extensa. Se deber separar la lgica de la aplicacin de la presentacin. Es decir, se tendr una clase con los mtodos y atributos necesarios para el funcionamiento del cliente, y otra(s) para la interfaz grfica.

CLCULOS Y REPORTE

Se verificar el funcionamiento adecuado de la aplicacin y se solicitar un reporte con el cdigo de la misma.

5 RESULTADOS Y CONCLUSIONES El alumno ser capaz de elaborar aplicaciones que hagan uso de diversos servicios de red.

Pgina 5 de 6

Cdigo GC-N4-017 . Revisin Octubre 2007 .

Fecha de efectividad: __________________

UNIVERSIDAD AUTNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD

Formato para prcticas de laboratorio


6 ANEXOS

Pgina 6 de 6

Cdigo GC-N4-017 . Revisin Octubre 2007 .

Anda mungkin juga menyukai