You are on page 1of 8

Comunicaciones con Sockets

ING. JOS ARMANDO ORDEZ GRUPO DE INGENIERA TELEMTICA UNIVERSIDAD DEL CAUCA

Contenido
Introduccin TCP/IP y OSI El modelo Cliente-Servidor Sockets
Mecanismo de comunicacin Sokets en java Ejemplo de Sockets

Introduccin
Para que dos computadores se puedan comunicar es necesario que puedan:
Localizarse el uno al otro Intercambiar cualquier secuencia de octetos
Protocolo de comunicaciones Direccin de protocolo de red (ej. Dir. IP) Un nmero de puerto

Un protocolo define las reglas para establecer una comunicacin.

TCP/IP Y OSI
TCP/IP NFS XDR RPC TCP/UDP IP/ICMP Trama Ethernet Red Ethernet 4. Transporte 3. Internet 2. Interfaz de Red 1. Hardware 5. Aplicacin OSI 7. Aplicacin 6. Representacin 5. Sesin 4. Transporte 3. Red 2. Enlace de Datos 1. Fsico

El Modelo Cliente - Servidor


El cliente solicita la ejecucin de un servicio El servidor realiza el servicio. Generalmente el cliente y el servidor estn ubicados en distintas mquinas. La separacin de cliente servidor es de tipo lgico. Ventajas de cliente-servidor
Centralizacin del Control Escalabilidad

El Modelo Cliente - Servidor


El Servidor:
Pasivo (Esclavo) Espera peticiones Procesa peticiones y enva respuestas

El Cliente
Activo Enva peticiones Recibe respuestas del servidor
CLIENTE

Interfaz (Especificaciones del Servicio) SERVIDOR

Consulta Respuesta

Sockets
Son puntos finales de enlaces de comunicaciones entre procesos. Un socket queda definido por una direccin IP, un protocolo y un nmero de puerto.
Puerto: direccin numrica para procesar un servicio. Direccin lgica del sistema operativo.

Permite implementar la arquitectura clienteservidor. El protocolo ms utilizado es el TCP


Se puede utilizar tambien UDP o IPX

Caractersticas de los Sockets


Sockets TCP
Son orientados a la conexin Garantiza la transmisin de lo octetos sin errores ni omisiones. Garantiza el orden de transmisin y recepcin.

Sockets UDP
Garantiza que los mensajes lleguen bien No garantiza orden de transmisin y recepcin Ideal para envo de mensajes frecuentes no importantes
Por ej. Video Streaming, Actualizaciones de grficos.

Mecanismo de Comunicacin va Sockets


La comunicacin por sockets tiene los siguientes pasos: 1. El servidor crea un socket con nombre y espera conexiones 2. El cliente crea un socket sin nombre 3. El cliente realiza una peticin de conexin al servidor 4. El cliente realiza la conexin a travs de su socket sin nombre y el servidor mantiene su socket

Tipos de Sockets
Sockets Stream(TCP):
Modo conectado (orientado a la conexin) Comunicaciones de dos vas Tamao variable de los mensajes.

Sockets Datagram(UDP):
Modo no conectado (no orientado a la conexin) Envo de datagramas de tamao limitado

Sokets Raw(IP):
Acceso a protocolos de bajo nivel. Se usa para depuracin de cdigos de protocolos

Sockets en Java
Java permite abstraer el nivel de red al programador. Java aporta una API que implementa todos los conceptos sobre sockets.

Transmisin Transparente Transmisi

Sockets en Java
El paquete para manejo de red es java.net contiene las siguientes clases:
Socket:
Utiliza TCP Proporciona mtodos entrada salida a travs de flujos.

Server Socket:
Escucha peticiones de los clientes No realiza el servicio, crea un objeto Socket en funcin del cliente para comunicarse

DatagramSocket:
Implementacin de datagramas (Sockets UDP) no ordenados Comunicacin rpida, no hay que establecimiento de conexin.

Sockets en Java
DatagramPacket:
Datagrama con informacin del paquete (longitud, direcciones IP y nmeros de puerto)

MulticastSocket:
Versin multicast de sockets datagrama. Mltiples Clientes/Servidores pueden transmitir a un grupo de multicast (Direcciones IP que comparten el mismo puerto)

NetworkServer:
Implementa mtodos y variables para crear un cliente TCP/IP

NetworkClient:
Mtodos y variables para crear un cliente TCP/IP

SocketImp:
Modelo de comunicacin personalizado

Ejemplo Socket Servidor

Crea el socket servidor en queda bloqueado Especifica que puede Se para escuchar conexiones en el puerto atender 4 un cliente hasta que clientes, sese Genera 5000 modificardeun el puede un flujo de conecte.un flujo para Genera Devuelve salida a partir del nmero de corresponde socket para clientes salida que enviar datos Permite escribir una OutputStreamejemplo deseados,(solo para a la conexin con el al cliente por admite cadena (String) en el admitirwhile(true) con unelsalidanormales Cierra tipos para cliente. socket de bytes) flujo de (enteros, flotantes, conexin con el cliente enviarla al cliente. strings)

Ejemplo Socket Cliente

Crea el socketde entrada Crea un flujo cliente para conectarsede el para recibir los datos Define un flujo con servidor a travs (este desde el a partir del de entrada leer el flujo Permite servidor del puerto 5000bytes) en solo admite para InputStream del entrada ysocket Cierra el escribirlo aceptarpara finalizar la la salidadatos normales cliente estndar del como cadenas, enteros sistema. comunicacin y flotantes

PREGUNTAS???
GRUPO DE INGENIERA TELEMTICA