SlideShare una empresa de Scribd logo
1 de 26
SOCKETS EN JAVA 
PROTOCOLO UDP 
1
DEFINICIÓN: CONCEPTO Y 
ESTRUCTURA 
• UN DATAGRAMA ES UN FRAGMENTO DE 
PAQUETE (ANÁLOGO A UN TELEGRAMA) 
QUE ES ENVIADO CON LA SUFICIENTE 
INFORMACIÓN PARA QUE LA RED PUEDA 
SIMPLEMENTE ENCAMINAR EL 
FRAGMENTO HACIA EL EQUIPO TERMINAL 
DE DATOS RECEPTOR, DE MANERA 
INDEPENDIENTE A LOS FRAGMENTOS 
2 
RESTANTES.
3 
Estructura de un datagrama es: 
cabecera y datos.
4 
Te va todo 
esto 
a quién le importa 
sólo envíalo lo 
a quién le importa 
sólo envíalo lo 
más rápido 
más rápido 
Los datagramas también son la agrupación lógica de información que se 
envía como una unidad de capa de red a través de un medio de 
transmisión sin establecer con anterioridad un circuito virtual. Los 
datagramas IP son las unidades principales de información de Internet.
USER DATAGRAM PROTOCOL 
(UDP) 
• ES UN PROTOCOLO DEL NIVEL DE TRANSPORTE BASADO EN 
EL INTERCAMBIO DE DATAGRAMAS (PAQUETE DE DATOS). 
• PERMITE EL ENVÍO DE DATAGRAMAS A TRAVÉS DE LA RED SIN 
QUE SE HAYA ESTABLECIDO PREVIAMENTE UNA CONEXIÓN, 
YA QUE EL PROPIO DATAGRAMA INCORPORA SUFICIENTE 
INFORMACIÓN DE DIRECCIONAMIENTO EN SU CABECERA. 
• TAMPOCO TIENE CONFIRMACIÓN NI CONTROL DE FLUJO, POR 
LO QUE LOS PAQUETES PUEDEN ADELANTARSE UNOS A 
OTROS. 
• TAMPOCO SE SABE SI HA LLEGADO CORRECTAMENTE, YA 
QUE NO HAY CONFIRMACIÓN DE ENTREGA O RECEPCIÓN. 
5
ENRUTAMIENTO 
ENRUTAR ES EL PROCESO DE SELECCIÓN DE UN 
CAMINO PARA EL ENVÍO DE PAQUETES. LA 
COMPUTADORA QUE HACE ESTO ES LLAMADA 
ROUTER. 
En general se puede dividir el 
enrutamiento en Entrega Directa y 
Entrega Indirecta. La Entrega Directa es 
la transmisión de un Datagrama de una 
maquina a otra dentro de la misma red 
física. La Entrega Indirecta ocurre 
cuando el destino no está en la red 
local, lo que obliga al Host a enviar el 
Datagrama a algún Router intermedio 
Puertos UDP utiliza puertos para permitir la comunicación entre 
6 
aplicaciones. El campo de puerto tiene una longitud de 16 bits, por lo que 
el rango de valores válidos va de 0 a 65.535.
EL PROTOCOLO UDP 
(USERDATAGRAM PROTOCOL) 
ES UN PROTOCOLO NO ORIENTADO A 
CONEXIÓN DE LA CAPA DE TRANSPORTE DEL 
MODELO TCP/IP, LO QUE SIGNIFICA QUE NO 
GARANTIZA NI LA ENTREGA DE PAQUETES NI 
QUE LOS PAQUETES LLEGUEN EN ORDEN 
SECUENCIAL, DONDE EL CONTROL SOBRE EL 
DESTINO FINAL DE UN PAQUETE UDP RECAE 
EN EL EQUIPO QUE LO ENVÍA. 
7
UN SOCKET 
ES UNA REFERENCIA INDIRECTA A UN PUERTO PARTICULAR USADA POR EL PROCESO 
RECEPTOR EN LA MÁQUINA RECEPTORA. 
LOS SOCKETS UDP PUEDE RECIBIR DATOS DE MÁS DE UN HOST. SI HAY VARIAS MÁQUINAS 
ºDEBE HABER COMUNICACIÓN, ENTONCES UDP PUEDE SER MÁS CONVENIENTE QUE OTROS 
MECANISMOS COMO TCP. 
º 
8
COMUNICACIÓN BASADA EN 
DATAGRAMAS 
UN DATAGRAMA ES TRANSMITIDO ENTRE PROCESOS CUANDO 
UN PROCESO LO ENVÍA Y OTRO PROCESO LO RECIBE. 
CUALQUIER PROCESO QUE NECESITE ENVIAR O RECIBIR 
MENSAJES DEBE EN PRIMER LUGAR CREAR UN SOCKET A UNA 
DIRECCIÓN DE HOST Y UN PUERTO LOCAL. 
UN SERVIDOR ENLAZARÁ ESE SOCKET A UN PUERTO SERVIDOR 
– IDENTIFICANDO AL CLIENTE DE MANERA QUE PUEDAN ENVIAR 
MENSAJES AL MISMO. UN CLIENTE ENLAZA SU SOCKET A 
CUALQUIER PUERTO LOCAL LIBRE. EL MÉTODO RECEPTOR 
DEVUELVE LA HOST Y EL PUERTO DEL EMISOR, ADEMÁS DEL 
MENSAJE, PERMITIENDO A LOS RECEPTORES ENVIAR 9 
UNA 
RESPUESTA.
Las clases Java para establecer comunicaciones mediante datagramas 
son: 
1.java.net.DatagramPacket 
10 
Permite enviar o recibir paquete 
2. java.net.DatagramSocket 
Permite crea un socket de datagrama, con destino al puerto x
MÉTODOS 
• INETADDRESS GETADDRESS() - DEVUELVE LA DIRECCIÓN IP DESDE QUE 
UNDATAGRAMPACKET FUE ENVIADO, O (SI EL PAQUETE VA A SER ENVIADO A UNA MÁQUINA 
REMOTA), LA DIRECCIÓN IP DE DESTINO. 
• BYTE [] GETDATA () - DEVUELVE EL CONTENIDO DE LA DATAGRAMPACKET, REPRESENTADO 
COMO UNA MATRIZ DE BYTES. 
• INT GETLENGTH INT () - DEVUELVE LA LONGITUD DE LOS DATOS ALMACENADOS EN UN 
DATAGRAMPACKET. ESTO PUEDE SER MENOR QUE EL TAMAÑO REAL DEL BÚFER DE DATOS 
• INT GETPORT () - DEVUELVE EL NÚMERO DE PUERTO DESDE DONDE SE ENVIÓ UN 
DATAGRAMPACKET, O (SI EL PAQUETE VA A SER ENVIADO A UNA MÁQUINA REMOTA), EL 
NÚMERO DE PUERTO DE DESTINO. 
• SETADDRESS (INETADDRESS ADDR) - ASIGNA UNA NUEVA DIRECCIÓN DE DESTINO A UN 
DATAGRAMPACKET. 
• SETDATA (BYTE [] BUFFER) - ASIGNA UN BUFFER DE DATOS NUEVOS A LA DATAGRAMPACKET. 
11 
• SETLENGTH (INT LENGTH) - ASIGNA UNA NUEVA LONGITUD DE LA DATAGRAMPACKET. 
• SETPORT (INT PORT) - ASIGNA UN PUERTO DE DESTINO A UN NUEVO DATAGRAMPACKET.
• JAVA PROPORCIONA CLASES PARA DAR SOPORTE A LA 
COMUNICACIÓN VÍA DATAGRAMAS UDP, TODAS ELLAS 
CONTENIDAS EN EL PAQUETE JAVA.NET. 
• ESTAS CLASES SON 
• DATAGRAMSOCKET, 
• DATAGRAMPACKET 
12
CLASE DATAGRAMSOCKET 
• LA CLASE DATAGRAMSOCKET PROPORCIONA ACCESO A 
UN SOCKET UDP, LO QUE PERMITE QUE LOS PAQUETES 
UDP PUEDAN SER ENVIADOS Y RECIBIDOS. 
• EL MISMO DATAGRAMSOCKET PUEDE SER USADO PARA 
RECIBIR LOS PAQUETES TANTO COMO PARA ENVIARLOS. 
13
• 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): constructor que toma un 
número de puerto como argumento, apropiado para 
los procesos que necesitan un número de puerto 
(servicios). 
• DatagramSocket(int port, InetAddress laddr): 
constructor que toma como argumentos el número 
14 
de puerto y una determinada dirección local. 
DatagramSocket: 
maneja sockets para enviar y recibir datagramas 
UDP. Proporciona tres constructores:
MÉTODOS DE LA CLASE 
DATAGRAMSOCKET 
• SEND(DATAGRAMPACKET P) Y RECEIVE(DATAGRAMPACKET P): ESTOS 
MÉTODOS SIRVEN PARA TRANSMITIR DATAGRAMAS ENTRE UN PAR DE 
CONECTORES. EL ARGUMENTO DE SEND ES UNA INSTANCIA DE 
DATAGRAMPACKET CONTENIENDO EL MENSAJE Y EL DESTINO. EL 
ARGUMENTO DE RECEIVE ES UN DATAGRAMPACKET VACÍO EN EL QUE 
COLOCAR EL MENSAJE, SU LONGITUD Y SU ORIGEN. 
• SETSOTIMEOUT(INT TIMEOUT): ESTE MÉTODO PERMITE ESTABLECER 
UN TIEMPO DE ESPERA LÍMITE. CUANDO SE FIJA UN LÍMITE, EL 
MÉTODO RECEIVE SE BLOQUEA DURANTE EL TIEMPO FIJADO Y 
DESPUÉS LANZA UNA EXCEPCIÓN INTERRUPTEDIOEXCEPTION 
• CONNECT(INETADDRESS ADDRESS, INT PORT): ESTE MÉTODO SE 
UTILIZA PARA CONECTARSE 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. 15
ENVIAR Y RECIBIR LOS DATAGRAMPACKET 
PARA ENVIAR EL DATAGRAMPACKET, DEBEMOS LLAMAR AL MÉTODO 
SEND() DE DATAGRAMSOCKET PASANDO COMO PARÁMETRO EL 
DATAGRAMPACKET QUE ACABAMOS DE CREAR. 
ENVIAR DATAGRAMPACKET 
SOCKET.SEND(DATO); 
•PARA RECIBIR, IGUAL PERO CON SOCKET.RECEIVE(). 
RECIBIR DATAGRAMPACKET 
SOCKET.RECEIVE(DATO); 
16
MÉTODOS 
• CLOSE() - CIERRA UN SOCKET, Y SE DESLIGA DEL PUERTO LOCAL. 
• CONNECT (INETADDRESS REMOTE_ADDR REMOTE_PORT INT) – RESTRINGE EL ACCESO A LA DIRECCIÓN 
ESPECIFICADA A DISTANCIA Y EL PUERTO. 
• DISCONNECT() - DESCONECTA EL DATAGRAMSOCKET. 
• INETADDRESS GETINETADDRESS () - DEVUELVE LA DIRECCIÓN REMOTA A LA QUE EL SOCKET ESTÁ CONECTADO, O 
NULL SI NO EXISTE NINGUNA TAL CONEXIÓN. 
• INT GETPORT () - DEVUELVE EL PUERTO REMOTO AL QUE ESTÁ CONECTADO EL SOCKET, O -1 SI NO EXISTE DICHA 
CONEXIÓN. 
• INETADDRESS GETLOCALADDRESS () - DEVUELVE LA DIRECCIÓN LOCAL A LA QUE EL SOCKET ESTA ENLAZADO. 
• INT GETLOCALPORT () - DEVUELVE EL PUERTO LOCAL AL QUE ESTÁ ENLAZADO EL CONECTOR. 
• INT GETRECEIVEBUFFERSIZE() THROWS JAVA.NET.SOCKETEXCEPTION – DEVUELVE EL TAMAÑO MÁXIMO DEL 
BÚFER UTILIZADO PARA LOS PAQUETES UDP ENTRANTES. 
• INT GETSENDBUFFERSIZE() THROWS JAVA.NET.SOCKETEXCEPTION - DEVUELVE EL TAMAÑO MÁXIMO DE BÚFER 
UTILIZADO PARA PAQUETES UDP SALIENTES. 
• GETSOTIMEOUT INT () THROWS JAVA.NET.SOCKETEXCEPTION - DEVUELVE EL VALOR DE LA OPCIÓN DE CONECTOR 
DE TIEMPO DE ESPERA. ESTE VALOR SE UTILIZA PARA DETERMINAR EL NÚMERO DE MILISEGUNDOS QUE UNA 
OPERACIÓN DE LECTURA BLOQUEARA ANTES DE LANZAR UN JAVA.IO.INTERRUPTEDIOEXCEPTION. DE MANERA 
PREDETERMINADA, ESTE VALOR SERÁ IGUAL A CERO, LO QUE INDICA QUE EL BLOQUEO DE E / S SE UTILIZARÁ. 
• RECEIVE (DATAGRAMPACKET PACKET)) THROWS JAVA.IO.IOEXCEPTION- LEE UN PAQUETE UDP Y ALMACENA EL 
CONTENIDO EN EL PAQUETE ESPECIFICADO. LA DIRECCIÓN Y EL PUERTO. 
17
CLASE DATAGRAMPACKET 
• UN DATAGRAMPACKET SE UTILIZA PARA 
REPRESENTAR UN PAQUETE UDP, Y DEBE SER 
CREADO ANTES DE RECIBIR LOS PAQUETES. 
• PROPORCIONAN CONSTRUCTORES PARA CREAR 
INSTANCIAS A PARTIR DE LOS DATAGRAMAS 
RECIBIDOS Y PARA CREAR INSTANCIAS DE 
DATAGRAMAS QUE VAN A SER ENVIADOS 
18
1.Constructores para datagramas que 
van a ser enviados: 
DatagramPacket(byte[] buf, int length) 
DatagramPacket(byte[] buf, int length, InetAddress address, int port). 
Estos constructores crean una instancia de datagrama 
compuesta por una cadena de bytes que almacena el 
mensaje, la longitud del mensaje y la dirección de Internet y el 
número de puerto local del conector destino, tal y como sigue: 
19 
DatagramPacket
20 
2.Constructores para datagramas recibido: 
DatagramPacket(byte[] buf, int offset, int length) 
DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port). 
Estos constructores nos permiten crear instancias de los datagramas 
recibidos, especificando la cadena de bytes en la que alojar el mensaje, la 
longitud de la misma y el offset dentro de la cadena. 
Dentro de esta clase hay métodos para obtener los diferentes componentes 
de un datagrama, tanto recibido como enviado: 
1.getData() : para obtener el mensaje contenido en el datagrama. 
2.getAddress() : para obtener la dirección IP. 
3.getPort(): para obtener el puerto.
EL FLUJO DEL PROGRAMA EN EL 
EMISOR Y RECEPTOR 
1.Remitente del programa 
Crear un socket de datagramas y vincularlo o cualquier puerto local.# Colocar 
la data en una matriz de bytes. 
Crear un paquete de datagramas, especificando la matriz de datos y la 
dirección del receptor. 
Invocar el método de envío del socket con una referencia al paquete de 
datagramas. 
1.Receptor del programa 
Crear un socket de datagrama y enlazarlo a un puerto local específico. 
Crear una matriz de bytes para la recepción de los datos. 
Crear un paquete de datagramas, especificando la matriz de datos. 
Invocar el método de recepción del socket con una referencia a los paquetes 
de datagramas 21
EJEMPLO DE PROTOCOLO DE DATAGRAMAS DE 
USUARIO 
PARA DEMOSTRAR CÓMO LOS PAQUETES UDP 
SE ENVÍAN Y RECIBEN, VAMOS A COMPILAR Y 
EJECUTAR DOS PEQUEÑOS EJEMPLOS. 
EL PRIMERO SE ENLAZARÁ A UN PUERTO 
LOCAL, LEERÁ UN PAQUETE, Y MOSTRARÁ SU 
CONTENIDO E INFORMACIÓN DE 
DIRECCIONAMIENTO. 
EL SEGUNDO EJEMPLO ENVIARÁ EL PAQUETE 
LEÍDO POR EL PRIMERO. 
22
TALLER N 1 
CLASE RECIBE 
23
TALLER N 1 CLASE ENVIA 
24
TALLER GRUPO DE 2 
ESTUDIANTES 
1. ESCRIBA EL CÓDIGO DE LOS DOS PROGRAMAS. 
2. COMPILE Y EJECUTE EL CÓDIGO DEL EJEMPLO EN UNA MÁQUINA USANDO 
``LOCALHOST'' COMO NOMBRE DE MÁQUINA. POR EJEMPLO HOST 
LOCALHOST PUERTO 3000 MENSAJE HOLA MUNDO 
3. EJECUTE LOS DOS PROGRAMAS ARRANCANDO PRIMERO AL RECEPTOR Y 
DESPUÉS AL EMISOR. EL MENSAJE QUE SE ENVÍE NO DEBERÍA EXCEDER LA 
LONGITUD MÁXIMA PERMITIDA QUE ES DE 25 CARACTERES. DESCRIBA EL 
RESULTADO DE LA EJECUCIÓN. 
4. VUELVA A EJECUTAR LAS APLICACIONES, ESTA VEZ EJECUTANDO PRIMERO 
AL ENVIA Y LUEGO AL QUE RECIBE. DESCRIBA Y EXPLIQUE EL RESULTADO. 
5. REPITA EL APARTADO , ESTA VEZ MANDANDO UN MENSAJE DE LONGITUD 
MÁS GRANDE QUE LA MÁXIMA LONGITUD PERMITIDA. DESCRIBA Y EXPLIQUE 
LA SALIDA PRODUCIDA. 
6. EN MÁQUINAS SEPARADAS EJECUTE SOLAMENTE AL QUE RECIBE Y EN 
OTRA MÁQUINA EJECUTE AL QUE ENVIA. DESCRIBA Y EXPLIQUE EL 
RESULTADO. 
7. MODIFIQUE EL CODIGO DEL QUE RECIBE PARA QUE MUESTRE LA SIGUIENTE 
INFORMACIÓN 
25
INDICACIONES DE SEGURIDAD 
• PASOS 
• DESACTIVAR LOS FIREWORKS Y ANTIVIRUS. 
• EN AMBAS MAQUINAS LA QUE TRABAJARA COMO CLIENTE Y LA OTRA COMO SERVIDOR 
INCLUIR ESTE CÓDIGO EN EL JDK ARCHIVO (JAVA.POLICY) 
• C:PROGRAM FILESJAVAJDK1.7.0_25JRELIBSECURITY 
// CAMBIAR ESTOS DATOS 
PERMISSION JAVA.NET.SOCKETPERMISSION "*:1024-65535", 
"CONNECT,ACCEPT,LISTEN,RESOLVE"; 
• 
• // ESTOS PERMITEN TENER ACCESO DESDE OTRO EQUIPO, SI TIENE LOCALHOST DEJE EL 
PUERTO QUE TIENE 
PERMISSION JAVA.NET.SOCKETPERMISSION ""LLOOCCAALLHHOOSSTT::80"",, 
""CCOONNNNEECCTT,,AACCCCEEPPTT,,LLIISSTTEENN,,RREESSOOLLVVEE"";; 
26 
• RECORDAR MODIFICARLO EN LOS DOS EQUIPOS

Más contenido relacionado

La actualidad más candente

Network Penetration Testing
Network Penetration TestingNetwork Penetration Testing
Network Penetration TestingMohammed Adam
 
E-mail Security in Network Security NS5
E-mail Security in Network Security NS5E-mail Security in Network Security NS5
E-mail Security in Network Security NS5koolkampus
 
Computer Networks Module 1 - part 2.pdf
Computer Networks Module 1 - part 2.pdfComputer Networks Module 1 - part 2.pdf
Computer Networks Module 1 - part 2.pdfShanthalaKV
 
computer-security-and-cryptography-a-simple-presentation
computer-security-and-cryptography-a-simple-presentationcomputer-security-and-cryptography-a-simple-presentation
computer-security-and-cryptography-a-simple-presentationAlex Punnen
 
Advancing IoT Communication Security with TLS and DTLS v1.3
Advancing IoT Communication Security with TLS and DTLS v1.3Advancing IoT Communication Security with TLS and DTLS v1.3
Advancing IoT Communication Security with TLS and DTLS v1.3Hannes Tschofenig
 
SEMANA 2. Conceptos de routing.pptx
SEMANA 2. Conceptos de routing.pptxSEMANA 2. Conceptos de routing.pptx
SEMANA 2. Conceptos de routing.pptxyanethmercedesaquino
 
File Transfer Protocol
File Transfer ProtocolFile Transfer Protocol
File Transfer Protocolguest029bcd
 

La actualidad más candente (11)

Network Penetration Testing
Network Penetration TestingNetwork Penetration Testing
Network Penetration Testing
 
E-mail Security in Network Security NS5
E-mail Security in Network Security NS5E-mail Security in Network Security NS5
E-mail Security in Network Security NS5
 
Computer Networks Module 1 - part 2.pdf
Computer Networks Module 1 - part 2.pdfComputer Networks Module 1 - part 2.pdf
Computer Networks Module 1 - part 2.pdf
 
computer-security-and-cryptography-a-simple-presentation
computer-security-and-cryptography-a-simple-presentationcomputer-security-and-cryptography-a-simple-presentation
computer-security-and-cryptography-a-simple-presentation
 
Advancing IoT Communication Security with TLS and DTLS v1.3
Advancing IoT Communication Security with TLS and DTLS v1.3Advancing IoT Communication Security with TLS and DTLS v1.3
Advancing IoT Communication Security with TLS and DTLS v1.3
 
Proxy Server
Proxy ServerProxy Server
Proxy Server
 
Email
EmailEmail
Email
 
SEMANA 2. Conceptos de routing.pptx
SEMANA 2. Conceptos de routing.pptxSEMANA 2. Conceptos de routing.pptx
SEMANA 2. Conceptos de routing.pptx
 
Blind Signature Scheme
Blind Signature SchemeBlind Signature Scheme
Blind Signature Scheme
 
File Transfer Protocol
File Transfer ProtocolFile Transfer Protocol
File Transfer Protocol
 
Algoritmo de Anillo
Algoritmo de AnilloAlgoritmo de Anillo
Algoritmo de Anillo
 

Similar a Sockets en JAVA

Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosStalin Jara
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsdandark2000
 
Protocolos y ejemplos
Protocolos y ejemplosProtocolos y ejemplos
Protocolos y ejemploselenainforb
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socketRene Guaman-Quinche
 
Resumen libro carlos suqui
Resumen libro carlos suquiResumen libro carlos suqui
Resumen libro carlos suquiCarlos Suqui
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos iiMiguel Hernandez
 
Capa de Transporte - Redes de Computadoras
Capa de Transporte - Redes de ComputadorasCapa de Transporte - Redes de Computadoras
Capa de Transporte - Redes de ComputadorasJesus Jimenez
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesosPablo Hurtado
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastHector L
 
capa de transporte
capa de transportecapa de transporte
capa de transporteRuben Borda
 
1. Ingreso a las redes. Protocolos de internet
1. Ingreso a las redes. Protocolos de internet1. Ingreso a las redes. Protocolos de internet
1. Ingreso a las redes. Protocolos de internetEdison Coimbra G.
 

Similar a Sockets en JAVA (20)

Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas sockets
 
Protocolos y ejemplos
Protocolos y ejemplosProtocolos y ejemplos
Protocolos y ejemplos
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socket
 
Resumen libro carlos suqui
Resumen libro carlos suquiResumen libro carlos suqui
Resumen libro carlos suqui
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos ii
 
Sockets/ tcp
Sockets/ tcpSockets/ tcp
Sockets/ tcp
 
Capa de transporte (2)
Capa de transporte (2)Capa de transporte (2)
Capa de transporte (2)
 
Sockets
SocketsSockets
Sockets
 
Sockets
SocketsSockets
Sockets
 
Sockets tcp
Sockets tcpSockets tcp
Sockets tcp
 
Capa de Transporte - Redes de Computadoras
Capa de Transporte - Redes de ComputadorasCapa de Transporte - Redes de Computadoras
Capa de Transporte - Redes de Computadoras
 
Networking
NetworkingNetworking
Networking
 
1
11
1
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesos
 
Tema 7 2º trabajo
Tema 7 2º trabajoTema 7 2º trabajo
Tema 7 2º trabajo
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP Multicast
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
capa de transporte
capa de transportecapa de transporte
capa de transporte
 
1. Ingreso a las redes. Protocolos de internet
1. Ingreso a las redes. Protocolos de internet1. Ingreso a las redes. Protocolos de internet
1. Ingreso a las redes. Protocolos de internet
 

Último

Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 
Tipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoTipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoMaxCaldern2
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...FabianCruz73
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 

Último (11)

Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
Tipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoTipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógico
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 

Sockets en JAVA

  • 1. SOCKETS EN JAVA PROTOCOLO UDP 1
  • 2. DEFINICIÓN: CONCEPTO Y ESTRUCTURA • UN DATAGRAMA ES UN FRAGMENTO DE PAQUETE (ANÁLOGO A UN TELEGRAMA) QUE ES ENVIADO CON LA SUFICIENTE INFORMACIÓN PARA QUE LA RED PUEDA SIMPLEMENTE ENCAMINAR EL FRAGMENTO HACIA EL EQUIPO TERMINAL DE DATOS RECEPTOR, DE MANERA INDEPENDIENTE A LOS FRAGMENTOS 2 RESTANTES.
  • 3. 3 Estructura de un datagrama es: cabecera y datos.
  • 4. 4 Te va todo esto a quién le importa sólo envíalo lo a quién le importa sólo envíalo lo más rápido más rápido Los datagramas también son la agrupación lógica de información que se envía como una unidad de capa de red a través de un medio de transmisión sin establecer con anterioridad un circuito virtual. Los datagramas IP son las unidades principales de información de Internet.
  • 5. USER DATAGRAM PROTOCOL (UDP) • ES UN PROTOCOLO DEL NIVEL DE TRANSPORTE BASADO EN EL INTERCAMBIO DE DATAGRAMAS (PAQUETE DE DATOS). • PERMITE EL ENVÍO DE DATAGRAMAS A TRAVÉS DE LA RED SIN QUE SE HAYA ESTABLECIDO PREVIAMENTE UNA CONEXIÓN, YA QUE EL PROPIO DATAGRAMA INCORPORA SUFICIENTE INFORMACIÓN DE DIRECCIONAMIENTO EN SU CABECERA. • TAMPOCO TIENE CONFIRMACIÓN NI CONTROL DE FLUJO, POR LO QUE LOS PAQUETES PUEDEN ADELANTARSE UNOS A OTROS. • TAMPOCO SE SABE SI HA LLEGADO CORRECTAMENTE, YA QUE NO HAY CONFIRMACIÓN DE ENTREGA O RECEPCIÓN. 5
  • 6. ENRUTAMIENTO ENRUTAR ES EL PROCESO DE SELECCIÓN DE UN CAMINO PARA EL ENVÍO DE PAQUETES. LA COMPUTADORA QUE HACE ESTO ES LLAMADA ROUTER. En general se puede dividir el enrutamiento en Entrega Directa y Entrega Indirecta. La Entrega Directa es la transmisión de un Datagrama de una maquina a otra dentro de la misma red física. La Entrega Indirecta ocurre cuando el destino no está en la red local, lo que obliga al Host a enviar el Datagrama a algún Router intermedio Puertos UDP utiliza puertos para permitir la comunicación entre 6 aplicaciones. El campo de puerto tiene una longitud de 16 bits, por lo que el rango de valores válidos va de 0 a 65.535.
  • 7. EL PROTOCOLO UDP (USERDATAGRAM PROTOCOL) ES UN PROTOCOLO NO ORIENTADO A CONEXIÓN DE LA CAPA DE TRANSPORTE DEL MODELO TCP/IP, LO QUE SIGNIFICA QUE NO GARANTIZA NI LA ENTREGA DE PAQUETES NI QUE LOS PAQUETES LLEGUEN EN ORDEN SECUENCIAL, DONDE EL CONTROL SOBRE EL DESTINO FINAL DE UN PAQUETE UDP RECAE EN EL EQUIPO QUE LO ENVÍA. 7
  • 8. UN SOCKET ES UNA REFERENCIA INDIRECTA A UN PUERTO PARTICULAR USADA POR EL PROCESO RECEPTOR EN LA MÁQUINA RECEPTORA. LOS SOCKETS UDP PUEDE RECIBIR DATOS DE MÁS DE UN HOST. SI HAY VARIAS MÁQUINAS ºDEBE HABER COMUNICACIÓN, ENTONCES UDP PUEDE SER MÁS CONVENIENTE QUE OTROS MECANISMOS COMO TCP. º 8
  • 9. COMUNICACIÓN BASADA EN DATAGRAMAS UN DATAGRAMA ES TRANSMITIDO ENTRE PROCESOS CUANDO UN PROCESO LO ENVÍA Y OTRO PROCESO LO RECIBE. CUALQUIER PROCESO QUE NECESITE ENVIAR O RECIBIR MENSAJES DEBE EN PRIMER LUGAR CREAR UN SOCKET A UNA DIRECCIÓN DE HOST Y UN PUERTO LOCAL. UN SERVIDOR ENLAZARÁ ESE SOCKET A UN PUERTO SERVIDOR – IDENTIFICANDO AL CLIENTE DE MANERA QUE PUEDAN ENVIAR MENSAJES AL MISMO. UN CLIENTE ENLAZA SU SOCKET A CUALQUIER PUERTO LOCAL LIBRE. EL MÉTODO RECEPTOR DEVUELVE LA HOST Y EL PUERTO DEL EMISOR, ADEMÁS DEL MENSAJE, PERMITIENDO A LOS RECEPTORES ENVIAR 9 UNA RESPUESTA.
  • 10. Las clases Java para establecer comunicaciones mediante datagramas son: 1.java.net.DatagramPacket 10 Permite enviar o recibir paquete 2. java.net.DatagramSocket Permite crea un socket de datagrama, con destino al puerto x
  • 11. MÉTODOS • INETADDRESS GETADDRESS() - DEVUELVE LA DIRECCIÓN IP DESDE QUE UNDATAGRAMPACKET FUE ENVIADO, O (SI EL PAQUETE VA A SER ENVIADO A UNA MÁQUINA REMOTA), LA DIRECCIÓN IP DE DESTINO. • BYTE [] GETDATA () - DEVUELVE EL CONTENIDO DE LA DATAGRAMPACKET, REPRESENTADO COMO UNA MATRIZ DE BYTES. • INT GETLENGTH INT () - DEVUELVE LA LONGITUD DE LOS DATOS ALMACENADOS EN UN DATAGRAMPACKET. ESTO PUEDE SER MENOR QUE EL TAMAÑO REAL DEL BÚFER DE DATOS • INT GETPORT () - DEVUELVE EL NÚMERO DE PUERTO DESDE DONDE SE ENVIÓ UN DATAGRAMPACKET, O (SI EL PAQUETE VA A SER ENVIADO A UNA MÁQUINA REMOTA), EL NÚMERO DE PUERTO DE DESTINO. • SETADDRESS (INETADDRESS ADDR) - ASIGNA UNA NUEVA DIRECCIÓN DE DESTINO A UN DATAGRAMPACKET. • SETDATA (BYTE [] BUFFER) - ASIGNA UN BUFFER DE DATOS NUEVOS A LA DATAGRAMPACKET. 11 • SETLENGTH (INT LENGTH) - ASIGNA UNA NUEVA LONGITUD DE LA DATAGRAMPACKET. • SETPORT (INT PORT) - ASIGNA UN PUERTO DE DESTINO A UN NUEVO DATAGRAMPACKET.
  • 12. • JAVA PROPORCIONA CLASES PARA DAR SOPORTE A LA COMUNICACIÓN VÍA DATAGRAMAS UDP, TODAS ELLAS CONTENIDAS EN EL PAQUETE JAVA.NET. • ESTAS CLASES SON • DATAGRAMSOCKET, • DATAGRAMPACKET 12
  • 13. CLASE DATAGRAMSOCKET • LA CLASE DATAGRAMSOCKET PROPORCIONA ACCESO A UN SOCKET UDP, LO QUE PERMITE QUE LOS PAQUETES UDP PUEDAN SER ENVIADOS Y RECIBIDOS. • EL MISMO DATAGRAMSOCKET PUEDE SER USADO PARA RECIBIR LOS PAQUETES TANTO COMO PARA ENVIARLOS. 13
  • 14. • 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): constructor que toma un número de puerto como argumento, apropiado para los procesos que necesitan un número de puerto (servicios). • DatagramSocket(int port, InetAddress laddr): constructor que toma como argumentos el número 14 de puerto y una determinada dirección local. DatagramSocket: maneja sockets para enviar y recibir datagramas UDP. Proporciona tres constructores:
  • 15. MÉTODOS DE LA CLASE DATAGRAMSOCKET • SEND(DATAGRAMPACKET P) Y RECEIVE(DATAGRAMPACKET P): ESTOS MÉTODOS SIRVEN PARA TRANSMITIR DATAGRAMAS ENTRE UN PAR DE CONECTORES. EL ARGUMENTO DE SEND ES UNA INSTANCIA DE DATAGRAMPACKET CONTENIENDO EL MENSAJE Y EL DESTINO. EL ARGUMENTO DE RECEIVE ES UN DATAGRAMPACKET VACÍO EN EL QUE COLOCAR EL MENSAJE, SU LONGITUD Y SU ORIGEN. • SETSOTIMEOUT(INT TIMEOUT): ESTE MÉTODO PERMITE ESTABLECER UN TIEMPO DE ESPERA LÍMITE. CUANDO SE FIJA UN LÍMITE, EL MÉTODO RECEIVE SE BLOQUEA DURANTE EL TIEMPO FIJADO Y DESPUÉS LANZA UNA EXCEPCIÓN INTERRUPTEDIOEXCEPTION • CONNECT(INETADDRESS ADDRESS, INT PORT): ESTE MÉTODO SE UTILIZA PARA CONECTARSE 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. 15
  • 16. ENVIAR Y RECIBIR LOS DATAGRAMPACKET PARA ENVIAR EL DATAGRAMPACKET, DEBEMOS LLAMAR AL MÉTODO SEND() DE DATAGRAMSOCKET PASANDO COMO PARÁMETRO EL DATAGRAMPACKET QUE ACABAMOS DE CREAR. ENVIAR DATAGRAMPACKET SOCKET.SEND(DATO); •PARA RECIBIR, IGUAL PERO CON SOCKET.RECEIVE(). RECIBIR DATAGRAMPACKET SOCKET.RECEIVE(DATO); 16
  • 17. MÉTODOS • CLOSE() - CIERRA UN SOCKET, Y SE DESLIGA DEL PUERTO LOCAL. • CONNECT (INETADDRESS REMOTE_ADDR REMOTE_PORT INT) – RESTRINGE EL ACCESO A LA DIRECCIÓN ESPECIFICADA A DISTANCIA Y EL PUERTO. • DISCONNECT() - DESCONECTA EL DATAGRAMSOCKET. • INETADDRESS GETINETADDRESS () - DEVUELVE LA DIRECCIÓN REMOTA A LA QUE EL SOCKET ESTÁ CONECTADO, O NULL SI NO EXISTE NINGUNA TAL CONEXIÓN. • INT GETPORT () - DEVUELVE EL PUERTO REMOTO AL QUE ESTÁ CONECTADO EL SOCKET, O -1 SI NO EXISTE DICHA CONEXIÓN. • INETADDRESS GETLOCALADDRESS () - DEVUELVE LA DIRECCIÓN LOCAL A LA QUE EL SOCKET ESTA ENLAZADO. • INT GETLOCALPORT () - DEVUELVE EL PUERTO LOCAL AL QUE ESTÁ ENLAZADO EL CONECTOR. • INT GETRECEIVEBUFFERSIZE() THROWS JAVA.NET.SOCKETEXCEPTION – DEVUELVE EL TAMAÑO MÁXIMO DEL BÚFER UTILIZADO PARA LOS PAQUETES UDP ENTRANTES. • INT GETSENDBUFFERSIZE() THROWS JAVA.NET.SOCKETEXCEPTION - DEVUELVE EL TAMAÑO MÁXIMO DE BÚFER UTILIZADO PARA PAQUETES UDP SALIENTES. • GETSOTIMEOUT INT () THROWS JAVA.NET.SOCKETEXCEPTION - DEVUELVE EL VALOR DE LA OPCIÓN DE CONECTOR DE TIEMPO DE ESPERA. ESTE VALOR SE UTILIZA PARA DETERMINAR EL NÚMERO DE MILISEGUNDOS QUE UNA OPERACIÓN DE LECTURA BLOQUEARA ANTES DE LANZAR UN JAVA.IO.INTERRUPTEDIOEXCEPTION. DE MANERA PREDETERMINADA, ESTE VALOR SERÁ IGUAL A CERO, LO QUE INDICA QUE EL BLOQUEO DE E / S SE UTILIZARÁ. • RECEIVE (DATAGRAMPACKET PACKET)) THROWS JAVA.IO.IOEXCEPTION- LEE UN PAQUETE UDP Y ALMACENA EL CONTENIDO EN EL PAQUETE ESPECIFICADO. LA DIRECCIÓN Y EL PUERTO. 17
  • 18. CLASE DATAGRAMPACKET • UN DATAGRAMPACKET SE UTILIZA PARA REPRESENTAR UN PAQUETE UDP, Y DEBE SER CREADO ANTES DE RECIBIR LOS PAQUETES. • PROPORCIONAN CONSTRUCTORES PARA CREAR INSTANCIAS A PARTIR DE LOS DATAGRAMAS RECIBIDOS Y PARA CREAR INSTANCIAS DE DATAGRAMAS QUE VAN A SER ENVIADOS 18
  • 19. 1.Constructores para datagramas que van a ser enviados: DatagramPacket(byte[] buf, int length) DatagramPacket(byte[] buf, int length, InetAddress address, int port). Estos constructores crean una instancia de datagrama compuesta por una cadena de bytes que almacena el mensaje, la longitud del mensaje y la dirección de Internet y el número de puerto local del conector destino, tal y como sigue: 19 DatagramPacket
  • 20. 20 2.Constructores para datagramas recibido: DatagramPacket(byte[] buf, int offset, int length) DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port). Estos constructores nos permiten crear instancias de los datagramas recibidos, especificando la cadena de bytes en la que alojar el mensaje, la longitud de la misma y el offset dentro de la cadena. Dentro de esta clase hay métodos para obtener los diferentes componentes de un datagrama, tanto recibido como enviado: 1.getData() : para obtener el mensaje contenido en el datagrama. 2.getAddress() : para obtener la dirección IP. 3.getPort(): para obtener el puerto.
  • 21. EL FLUJO DEL PROGRAMA EN EL EMISOR Y RECEPTOR 1.Remitente del programa Crear un socket de datagramas y vincularlo o cualquier puerto local.# Colocar la data en una matriz de bytes. Crear un paquete de datagramas, especificando la matriz de datos y la dirección del receptor. Invocar el método de envío del socket con una referencia al paquete de datagramas. 1.Receptor del programa Crear un socket de datagrama y enlazarlo a un puerto local específico. Crear una matriz de bytes para la recepción de los datos. Crear un paquete de datagramas, especificando la matriz de datos. Invocar el método de recepción del socket con una referencia a los paquetes de datagramas 21
  • 22. EJEMPLO DE PROTOCOLO DE DATAGRAMAS DE USUARIO PARA DEMOSTRAR CÓMO LOS PAQUETES UDP SE ENVÍAN Y RECIBEN, VAMOS A COMPILAR Y EJECUTAR DOS PEQUEÑOS EJEMPLOS. EL PRIMERO SE ENLAZARÁ A UN PUERTO LOCAL, LEERÁ UN PAQUETE, Y MOSTRARÁ SU CONTENIDO E INFORMACIÓN DE DIRECCIONAMIENTO. EL SEGUNDO EJEMPLO ENVIARÁ EL PAQUETE LEÍDO POR EL PRIMERO. 22
  • 23. TALLER N 1 CLASE RECIBE 23
  • 24. TALLER N 1 CLASE ENVIA 24
  • 25. TALLER GRUPO DE 2 ESTUDIANTES 1. ESCRIBA EL CÓDIGO DE LOS DOS PROGRAMAS. 2. COMPILE Y EJECUTE EL CÓDIGO DEL EJEMPLO EN UNA MÁQUINA USANDO ``LOCALHOST'' COMO NOMBRE DE MÁQUINA. POR EJEMPLO HOST LOCALHOST PUERTO 3000 MENSAJE HOLA MUNDO 3. EJECUTE LOS DOS PROGRAMAS ARRANCANDO PRIMERO AL RECEPTOR Y DESPUÉS AL EMISOR. EL MENSAJE QUE SE ENVÍE NO DEBERÍA EXCEDER LA LONGITUD MÁXIMA PERMITIDA QUE ES DE 25 CARACTERES. DESCRIBA EL RESULTADO DE LA EJECUCIÓN. 4. VUELVA A EJECUTAR LAS APLICACIONES, ESTA VEZ EJECUTANDO PRIMERO AL ENVIA Y LUEGO AL QUE RECIBE. DESCRIBA Y EXPLIQUE EL RESULTADO. 5. REPITA EL APARTADO , ESTA VEZ MANDANDO UN MENSAJE DE LONGITUD MÁS GRANDE QUE LA MÁXIMA LONGITUD PERMITIDA. DESCRIBA Y EXPLIQUE LA SALIDA PRODUCIDA. 6. EN MÁQUINAS SEPARADAS EJECUTE SOLAMENTE AL QUE RECIBE Y EN OTRA MÁQUINA EJECUTE AL QUE ENVIA. DESCRIBA Y EXPLIQUE EL RESULTADO. 7. MODIFIQUE EL CODIGO DEL QUE RECIBE PARA QUE MUESTRE LA SIGUIENTE INFORMACIÓN 25
  • 26. INDICACIONES DE SEGURIDAD • PASOS • DESACTIVAR LOS FIREWORKS Y ANTIVIRUS. • EN AMBAS MAQUINAS LA QUE TRABAJARA COMO CLIENTE Y LA OTRA COMO SERVIDOR INCLUIR ESTE CÓDIGO EN EL JDK ARCHIVO (JAVA.POLICY) • C:PROGRAM FILESJAVAJDK1.7.0_25JRELIBSECURITY // CAMBIAR ESTOS DATOS PERMISSION JAVA.NET.SOCKETPERMISSION "*:1024-65535", "CONNECT,ACCEPT,LISTEN,RESOLVE"; • • // ESTOS PERMITEN TENER ACCESO DESDE OTRO EQUIPO, SI TIENE LOCALHOST DEJE EL PUERTO QUE TIENE PERMISSION JAVA.NET.SOCKETPERMISSION ""LLOOCCAALLHHOOSSTT::80"",, ""CCOONNNNEECCTT,,AACCCCEEPPTT,,LLIISSTTEENN,,RREESSOOLLVVEE"";; 26 • RECORDAR MODIFICARLO EN LOS DOS EQUIPOS