Está en la página 1de 24

INTERFAZ DE PROGRAMACION EN RED:

SOCKETS

Hernando Recamann Chaux


Msc. Ingenieria Area Informatica
Dipl. Docencia Universitaria
SOCKETS

INTRODUCCION

CONCEPTOS GENERALES

CONCLUSIONES
MODELO CLIENTE-SERVIDOR

Get HTTP/1.0 Get HTTP/1.0 OK


Content type text/HTML
<html>…</html>
Normalmente, un servidor esta preparado para atender
muchos clientes. Se puede hacer de dos manera:
1. Secuencial 2. Concurrente (al tiempo)
SOCKETS
SOCKETS
Es el punto final de un enlace de comunicación de dos vías
entre dos programas que se ejecutan a través de la red.
IDENTIFICACION SOCKETS
TIPOS DE SOCKETS
SOCKETS EN JAVA
En el paquete java.net existen las siguientes clases:

InetAdress:Se encarga de implementar la dirección IP.

Socket: Implementa un extremo de la conexión TCP.

ServerSocket:Se encarga de implementar el extremo Servidor de la conexión


en la que se esperarán las conexiones de los clientes.

DatagramSocket:Implementa tanto el servidor como el cliente cuando se


utiliza UDP.

DatagramPacket:Implementa un datagram packet, que se utiliza para la


creación de servicios de reparto de paquetes sin conexión.
INETADRESS
Métodos
GetByName() devuelve un objeto representando el host que se pasa
como parámetro.
GetAllByName() devuelve un array de objetos InetAddress, y se puede
utilizar para determinar todas las direcciones IP asignadas a un host.
getLocalHost() devuelve un objeto InetAddress representando el
ordenador local sobre el que se ejecuta la aplicación.
GetHostName() obtiene el nombre de la máquina.
GetAddress() obtiene un array de bytes con la dirección IP de la máquina.
SERVIDORES TCP
Clase ServerSocket
Constructores
● ServerSocket(int puerto)
Abre un socket en el puerto indicado en modo de escucha
Si port = 0, entonces se elige cualquier puerto libre
● ServerSocket(int puerto, int backlog)
Abre un socket en el puerto indicado en modo de escucha
backlog indica la longitud máxima de la cola de
conexiones en espera. Cuando llega una solicitud de conexión y la
cola está llena, se rechaza la conexión
● accept()
Acepta una conexión de un cliente y devuelve un socket
asociado a ella, el proceso se bloquea hasta que se realiza una
conexión.
El diálogo con el cliente se hace por el nuevo socket
El ServerSocket puede atender nuevas conexiones
● close()
Cierra el socket servidor
CLIENTES TCP
ServerSocket Socket
Entrada Entrada
Salida Salida
s(ServerSocket) s (Socket)
s1(Socket) y
cadena q
esperar_Conexion()
obtener_Flujos()
EJEMPLO
SERVIDOR TCP ITERATIVO
CLIENTE SOCKET
SOCKETS UDP
Con UDP no se establece “conexión” entre cliente y servidor

● El emisor indica explícitamente la dirección IP y el puerto del


origen y del destino en cada paquete
● El receptor ha de extraer del paquete recibido la dirección IP y
el puerto del emisor
● Los datos transmitidos pueden llegar fuera de orden o incluso
perderse
DatagramSocket
● Constructores
DatagramSocket(): constructor sin argumentos que permite que el
sistema elija un puerto entre los que estén libres y selecciona una de las
direcciones locales.
DatagramSocket(int port)
Abre el puerto indicado en el argumento
DatagramSocket(int port,InetAddress Iaddr)
Abre el puerto y la dirección local indicada en los argumentos

METODOS
setSoTimeout(int timeout): este método permite establecer un tiempo de
espera límite para despues ejecutar la excepción InterruptedIOException
connect(InetAddress address, int port): se conecta a un puerto remoto y
a una dirección Internet concretos, en cuyo caso el conector sólo podrá
enviar y recibir mensajes de esa dirección.
DatagramPacket
● Constructores
DatagramPacket(byte buf[ ], int longitud)
Crea un datagrama UDP a partir de ese buffer y con esa longitud
DatagramPacket(byte buf[ ], int longitud, InetAddress dirIP, int
puerto)
Crea un datagrama UDP con ese buffer y de esa longitud para enviarlo
a la dirección IP y puerto que se indican
METODOS
send(DatagramPacket p)Envía un datagrama que incluye los datos a
enviar, su longitud y la dirección IP y el puerto del destino
receive(DatagramPacket p) Recibe datagramas. Cuando el método
retorna, el buffer DatagramPacket contiene los datos recibidos y la
dirección IP y puerto de quien envía el datagrama
close()
DatagramSocket DatagramPacket
datagrama (Dpack) Datagrama (Dpack)
s(DatagramSocket) s (DatagramSocket)
cadena y
c
EJEMPLO
ServidorSocket ClienteSocket
Entrada Entrada
Salida Salida
s(ServerSocket) s (Socket)
s1(Socket) y
cadena1,cadena2, q
cadena3
esperar_Conexion()
obtener_Flujos()

Calc
n1
n2
contructor
gets y sets
Calculate(int valor1,
int valor2,String op)
Ejemplo Palindromo

Sockets.RAR
CONCLUSIONES

Conocimiento sobre:

•La Interfaz que ofrecen los Sistemas Operativos para


•Acceder a los servicios de Red

•Estructura Básica de un Cliente y un Servidor

•Gestión simultanea de varios clientes

También podría gustarte