Está en la página 1de 3

VI.

Desarrollo de Applets / aplicaciones con uso de base de datos, redes, Servlets y multimedia

Aplicacin Cliente/Servidor

Vamos a desarrollar una pequea aplicacin de comunicacin en redes, la haremos del tipo Cliente/Servidor, a veces cuando tenemos aplicaciones de este tipo es di !cil distin"uir que parte de la aplicacin es el cliente y cual el servidor, en nuestro caso ser# #cil darse cuenta de cual es cual. $ormalmente el cliente es que inicia la comunicacin pidiendo un servicio y el servidor es el que provee ese servicio. %a comunicacin entre ambas partes adem#s de tener como in raestructura soc&ets de 'C(/I( tiene que tener un protocolo particular, este protocolo es que marca el orden de la transmisin de los datos y el tipo de estos datos, para que coincida el tipo de datos que una de las entidades manda y el tipo de datos que la otra espera recibir, esto es muy importante porque si no se respeta la aplicacin no sirve para nada, adem#s de que contendr# una serie de errores. Esquema de un Servidor ). Abrir un soc&et *ServerSoc&et+ para esperar por peticiones de cone,in -. Al lle"ar una peticin, crear otro soc&et *Soc&et+ por medio del cual se comunicar# con el cliente .. Asociar uno o m#s lu/os intermedios a los lu/os de entrada *InputStream+ y de salida *0utputStream+ asi"nados al socket 1. %eer/2scribir a los lu/os de acuerdo al protocolo establecido 3. 2ventualmente termina la comunicacin 4. Cerrar lu/os y sockets Esquema del Cliente ). Abrir un socket *Soc&et+ para conectarse y comunicarse con el Servidor -. 2stablecer cone,in con el Servidor .. Asociar uno o m#s lu/os intermedios a los lu/os de entrada *InputStream+ y de salida *0utputStream+ asi"nados al soc&et 1. %eer/2scribir a los lu/os de acuerdo al protocolo establecido 3. 2ventualmente termina la comunicacin 4. Cerrar lu/os y soc&ets Ejemplo2 2n nuestro e/emplo el cliente enviar# strings al Servidor y este le contestar# con la lon"itud del string recibido, al"o que nos dar# una idea del poder de 5ava es que por medio de lu/os *streams+, lo que el cliente mandar# ser# literalmente un Strin" y no un "rupo de bytes, y lo m#s interesante es que el Servidor contestar# con un entero *int+ no con un par de bytes que habr!a que trans ormar para poder mane/arlo como un entero. %o anterior se puede lo"rar por el uso de lu/os en 5ava que nos permite subir el nivel de abstraccin de nuestra pro"ramacin, "enerando pro"ramas m#s le"ibles y mantenibles. Ambos pro"ramas terminan cuando el cliente env!a un strin" nulo al Servidor, adem#s el cliente debe dar la direccin I( del servidor en la l!nea de comandos, para poder correr los pro"ramas en cualquier m#quina sin necesidad de cambiar la direccin delservidor y volver a compilar, as! es que adelante6 'e recomiendo que ten"as a mano el cdi"o de cada pro"rama porque veremos slo el

También podría gustarte