Sockets Java
Comunicaciones en Java Sockets Cliente
Daniel Díaz Sánchez Florina Almenárez Andrés Marín Departamento de Ingeniería Telemática Universidad Carlos III de Madrid dds@it.uc3m.es
Contexto
• Objetivos
– Conocer las particularidades de las comunicaciones en Java Java, desarrollando pequeños programas que interactúen conprotocolos conocidos
Programación de dispositivos limitados Pág. 1
1
Índice
• Introducción a los sockets • Conceptos básicos • La clase Socket
Programación de dispositivos limitados Pág. 2
Introducción a los sockets
• Los sockets son un sistema de comunicación entre procesos. Un proceso, a través de un socket, puede recibir/enviar i f ibi / i información d / otro proceso l ió de/at localizado li d en otra máquina (o en la misma). • Los sockets se hicieron populares gracias a las implementaciones de la Universidad de Berkeley de su sistema operativo tipo Unix llamado BSD BSD.
Programación de dispositivos limitados Pág. 3
2
Introducción a los sockets
• El API de sockets define una serie de primitivas que combinadas dan lugar a este diálogo • Durante esta sesiónveremos como lo ha implementado Java.
Programación de dispositivos limitados Pág. 4
Introducción a los sockets
• Los datos se transmiten en Internet usando paquetes. j p p j p • Los datos se manejan en capas, por ejemplo:
DATOS de la aplicación
Maximo tamaño
Aplicación
TCP header
DATOS
Transporte Red R d
Frame footer
IP TCP r header header Frame header IP TCP r header headerDATOS
DATOS
Enlace
Programación de dispositivos limitados Pág. 5
3
Introducción a los sockets
• Hay dos tipos de transporte básicos
– Orientado a conexión
• mantiene un canal de comunicación con el otro extremo de forma constante durante la conexión • La entrega de paquetes es ordenada
– Orientado a datagrama
• No hay canal de comunicación constante • La entrega esdesordenada
• Hay varias formas de comunicarse
– De uno a uno: Cliente-Servidor, Peer to Peer (P2P) – De uno a todos: broadcast – De uno a varios: multicast
Programación de dispositivos limitados Pág. 6
Introducción a los sockets
• Hay que realizar un gran número de operaciones con los datos:
– – – – – Fraccionarlos Etiquetarlos con las cabeceras de los diferentes protocolos Controlar lacongestión Retransmitir paquetes que se hayan perdido Administrar almacenamiento intermedio….
• Todas estas tareas son tediosas y complejas
– Imaginad el coste de hacer todas estas operaciones en cada uno de las aplicaciones que se conectan a Internet
Programación de dispositivos limitados Pág. 7
4
Introducción a los sockets
• Los sockets son una abstracción de esas tareas parafacilitar la programación de aplicaciones con conectividad. ti id d • Los sockets permiten:
– A los clientes y servidores:
• • • • Conectar con la máquina remota (prot. orientados a conexión) Enviar datos Recibir datos Cerrar una conexión ( t orientados a conexión) C ió (prot. i t d ió )
– A los servidores:
• Asociar un socket a un puerto • Escuchar para recibir datos • Aceptar conexiones en elpuerto asociado
Programación de dispositivos limitados Pág. 8
Introducción a los sockets
• Java separa en dos clases la funcionalidad de sockets orientados a conexión.
– La clase Socket usada por clientes y servidores. – La clase ServerSocket usada únicamente por servidores.
Conectar con la máquina remota Enviar datos Recibir datos Cerrar una conexión
Socket
Asociar un socket a un puertoEscuchar para recibir datos Aceptar conexiones en el puerto asociado
Programación de dispositivos limitados Pág. 9
ServerSocket
5
Conceptos básicos
• Java es un lenguaje orientado a la red
– Todo programa en Java hace uso de la entrada y salida, el paquete IO y en el caso d l comunicaciones t bié t l de las i i también – Vamos a repasar la entrada y salida en Java, es decir, el...
Regístrate para leer el documento completo.