SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Java Advanced Programming
Introduccion I
http://javacuriosities.blogspot.com.ar/
Networking
Cuando hablamos de networking nos estamos refiriendo a la posibilidad de
trabajar con diversas aplicación ubicadas físicamente en distintas
estaciones de trabajo y permitir que se conecten vía una red, para trabajar
de manera cooperativa o simplemente enviar y recibir información.
Java advanced programming
Socket
Un Socket es una representación abstracta del extremo (Endpoint) en un
proceso de comunicación. Para que se dé la comunicación en una Red, el
proceso de comunicación requiere un Socket a cada extremo
Emisor/Receptor y viceversa.
Java advanced programming
Protocolos (Capa 4 - Nivel de Transporte)
Cuando conectamos dos sockets en medio existe algo que se conoce
como protocolo de transporte, aquí estaremos hablando de TCP o UDP.
Java advanced programming
TCP
TCP (Transmission Control Protocol)
- Protocolo de transporte “orientado a conexión”
- Garantiza un servicio extremo a extremo fiable
- Detectar/retransmitir segmentos de datos perdidos o erróneos
- Detectar y descartar segmentos duplicados
- Ordenar los segmentos en el destino y pasarlos de forma ordenada a la capa
de aplicación
- Utilizado en aplicaciones en las que la seguridad en la entrega es más
importante que la rapidez
- Ejemplos: FTP, HTTP, Telnet, SMTP, etc.
Java advanced programming
UDP
UDP(User Datagram Protocol)
- Protocolo de transporte sin conexión
- No garantiza un servicio extremo a extremo fiable
- No controla la pérdida de paquetes, los errores o la duplicidad
- Utilizado en aplicaciones en las que la rapidez en la entrega es más importante
que la seguridad
- Ejemplos: DNS, SNMP, RIP, RTP, etc
Java advanced programming
TCP/UDP
Java advanced programming
Cliente/Servidor
 Modelo cliente-servidor
- Es el patrón de comunicación usado por la mayoría de las aplicaciones TCP/UDP
- El funcionamiento básico se emplea en otro modelos (Ejemplo: peer-to-peer)
 Cliente
- Es la aplicación que inicia la conexión o el intercambio de datos con la máquina
remota (servidor)
- La aplicación cliente normalmente la arranca un usuario cuando quiere utilizar un
servicio de la red
- Ejemplos: Navegador web (TCP), cliente de e-mail (TCP), consulta al servidor DNS
(UDP)
 Servidor
- Es la aplicación que recibe y acepta la solicitud de conexión o intercambio de datos
del cliente
- Esta aplicación normalmente está ejecutándose continuamente en la máquina
remota y está a la espera de solicitudes de clientes
- Ejemplos: Servidor Web (TCP), Servidor de correo electrónico (TCP), Servidor DNS
(UDP)
Java advanced programming
Sockets y Puertos
 Sockets y Puertos
- El canal de comunicación establecido entre el cliente y el servidor se denomina
“socket” (enchufe)
- El socket permite el intercambio de datos bidireccional entre cliente y servidor
- Cada aplicación servidor o cliente está identificada por un número de puerto
 Parámetros en una comunicación TCP o UDP
- Dirección IP del cliente: Identifica a la máquina cliente (la que inicia la conexión o
intercambio de datos)
- Puerto del cliente: Identifica al proceso cliente en la máquina cliente
- Dirección IP del servidor: Identifica a la máquina servidora (la que acepta la
solicitud de conexión o intercambio de datos)
- Puerto del servidor: Identifica al proceso servidor en la máquina servidora
Java advanced programming
Direccion IP
 Una dirección IP es un número que identifica de manera lógica y jerárquica a
una interfaz de un dispositivo (habitualmente una computadora) dentro de
una red que utilice el protocolo IP (Internet Protocol), que corresponde al
nivel de red del protocolo TCP/IP.
 Dicho número no se ha de confundir con la dirección MAC que es un número
hexadecimal fijo que es asignado a la tarjeta o dispositivo de red por el
fabricante, mientras que la dirección IP se puede cambiar.
 Es habitual que un usuario que se conecta desde su hogar a Internet utilice
una dirección IP. Esta dirección puede cambiar cada vez que se conecta; y a
esta forma de asignación de dirección IP se denomina una dirección IP
dinámica.
 Los sitios de Internet que por su naturaleza necesitan estar
permanentemente conectados, generalmente tienen una dirección IP fija, es
decir, no cambia con el tiempo. Los servidores de correo, DNS, FTP
públicos, y servidores de páginas web necesariamente deben contar con una
dirección IP fija o estática, ya que de esta forma se permite su localización
en la red.Java advanced programming
Puerto
 Un puerto es una dirección numérica a través de la cual se procesa un
servicio, es decir, no son puertos físicos semejantes al puerto paralelo para
conectar la impresora, sino que son direcciones lógicas proporcionadas por
el sistema operativo para poder responder.
 Las comunicaciones de información relacionada con Web tienen lugar a
través del puerto 80 mediante protocolo TCP. Para emular esto en Java, se
utiliza la clase Socket.
 Teóricamente hay 65535 puertos disponibles, aunque los puertos del 1 al
1023 están reservados al uso de servicios estándar proporcionados por el
sistema, quedando el resto libre para utilización por las aplicaciones de
usuario. De no existir los puertos, solamente se podría ofrecer un servicio
por máquina. Nótese que el protocolo IP no sabe nada al respecto de los
números de puerto.
Java advanced programming
URL (Uniform Resource Locator)
Una URL, o dirección, es en realidad un puntero a un determinado recurso. Al
especificar una URL, se está indicando:
- El protocolo utilizado para acceder al servidor (HTTP, por ejemplo)
- El nombre del servidor
- El puerto de conexión (Opcional)
- El path al recurso
- El nombre de un archivo determinado (Opcional a veces)
- Un punto de referencia dentro del archivo (Opcional)
 La sintaxis general, para una dirección URL, sería:
protocolo://nombre_servidor[:puerto]/directorio/archivo#referencia
Java advanced programming
Puertos Well-Known
Java advanced programming
ServerSocket
Esta clase es la encargada de definir un puerto de escucha y actuar de
servidor, iniciamos el ServerSocket en un puerto y nos quedamos aceptando
peticiones.
Java advanced programming
Socket
Cuando implementamos el lado Cliente debemos usar un socket e indicarle a
donde nos vamos a conectar.
Java advanced programming
Entrada/Salida
La API de Java diferencia entre los streams de caracteres y streams de bytes.
 Streams de bytes (InputStream y OutputStream)
- Diseñados para operar a nivel de byte.
- Hay ciertos dispositivos que sólo pueden trabajar a este nivel.
 Streams de caracteres (Reader y Writer)
- Diseñados para optimizar las operaciones con cadenas de caracteres.
- Posteriores a las anteriores.
- Soportan codificaciones Unicode-16.
- Cualquier fichero de texto puede ser accedido directamente a través de este tipo de
stream.
- Existen dispositivos, que aunque están preparados para enviar/recibir información
de esta naturaleza, no pueden tratarse directamente con este stream. En estos
casos, se deberá envolver el stream de bytes con un stream de caracteres.
- InputStreamReader
- OutputStreamReader
Java advanced programming
Stream de entradas
Java advanced programming
Stream de salidas
Java advanced programming
Jerarquia de flujos de bytes
Java advanced programming
Jerarquia de flujos de caracteres
Java advanced programming
Java advanced programming
Errores tipicos
 Intentar usar un puerto que esta siendo usado por otra aplicación
- Obtendremos la exception " java.net.BindException: Address already in use:
connect "
 Si dejamos el stream abierto y seguimos creando streams en algún
momento obtenemos el siguiente error.
- No buffer space available (maximum connections reached?):

Más contenido relacionado

La actualidad más candente

DIAPOSITIVAS CURSO PYTHON.pptx.pdf
DIAPOSITIVAS CURSO PYTHON.pptx.pdfDIAPOSITIVAS CURSO PYTHON.pptx.pdf
DIAPOSITIVAS CURSO PYTHON.pptx.pdfJuanPatricioLemaChil
 
2. software y sus cualidades
2. software y sus cualidades2. software y sus cualidades
2. software y sus cualidadesEvëlyn Gxbriela
 
Codigos Corrector de Errores
Codigos Corrector de ErroresCodigos Corrector de Errores
Codigos Corrector de ErroresWalter Toledo
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosJosé Antonio Sandoval Acosta
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladorgbermeo
 
Evolucion de los microprocesadores
Evolucion de los microprocesadoresEvolucion de los microprocesadores
Evolucion de los microprocesadoresWilfredy Inciarte
 
Linea del tiempo de los frameworks
Linea del tiempo de los frameworksLinea del tiempo de los frameworks
Linea del tiempo de los frameworksJose Alejandro
 
Introducción a la ingeniería del software - cuestionario
Introducción a la ingeniería del software -  cuestionarioIntroducción a la ingeniería del software -  cuestionario
Introducción a la ingeniería del software - cuestionarioSamuelSanchez136
 
Los sistemas operativos de Red
Los sistemas operativos de Red Los sistemas operativos de Red
Los sistemas operativos de Red ANDINO2017
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 
Servicios del servidor
Servicios del servidorServicios del servidor
Servicios del servidorJenny Ospina
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 

La actualidad más candente (20)

DIAPOSITIVAS CURSO PYTHON.pptx.pdf
DIAPOSITIVAS CURSO PYTHON.pptx.pdfDIAPOSITIVAS CURSO PYTHON.pptx.pdf
DIAPOSITIVAS CURSO PYTHON.pptx.pdf
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
2. software y sus cualidades
2. software y sus cualidades2. software y sus cualidades
2. software y sus cualidades
 
Codigos Corrector de Errores
Codigos Corrector de ErroresCodigos Corrector de Errores
Codigos Corrector de Errores
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicos
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Evolucion de los microprocesadores
Evolucion de los microprocesadoresEvolucion de los microprocesadores
Evolucion de los microprocesadores
 
Linea del tiempo de los frameworks
Linea del tiempo de los frameworksLinea del tiempo de los frameworks
Linea del tiempo de los frameworks
 
Introducción a la ingeniería del software - cuestionario
Introducción a la ingeniería del software -  cuestionarioIntroducción a la ingeniería del software -  cuestionario
Introducción a la ingeniería del software - cuestionario
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Modos de Direccionamiento
Modos de DireccionamientoModos de Direccionamiento
Modos de Direccionamiento
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
10 arquitectura intel 8086
10 arquitectura intel 808610 arquitectura intel 8086
10 arquitectura intel 8086
 
Puerto serie asincrónico
Puerto serie asincrónicoPuerto serie asincrónico
Puerto serie asincrónico
 
Los sistemas operativos de Red
Los sistemas operativos de Red Los sistemas operativos de Red
Los sistemas operativos de Red
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Servicios del servidor
Servicios del servidorServicios del servidor
Servicios del servidor
 
Archivos
ArchivosArchivos
Archivos
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 

Destacado (7)

Sockets UDP
Sockets UDPSockets UDP
Sockets UDP
 
Thread 02
Thread 02Thread 02
Thread 02
 
Thread 01
Thread 01Thread 01
Thread 01
 
Comunicación en Grupo
Comunicación en GrupoComunicación en Grupo
Comunicación en Grupo
 
Log4J
Log4JLog4J
Log4J
 
Funcion de la tabla de enrutamiento
Funcion de la tabla de enrutamientoFuncion de la tabla de enrutamiento
Funcion de la tabla de enrutamiento
 
03 Oop
03   Oop03   Oop
03 Oop
 

Similar a Sockets TCP

Similar a Sockets TCP (20)

Sockets y servidores
Sockets y servidoresSockets y servidores
Sockets y servidores
 
Networking
NetworkingNetworking
Networking
 
Sockets
SocketsSockets
Sockets
 
Sockets
SocketsSockets
Sockets
 
Diseño de la red I.E. César Vallejo
Diseño de la red I.E. César VallejoDiseño de la red I.E. César Vallejo
Diseño de la red I.E. César Vallejo
 
Edwin
EdwinEdwin
Edwin
 
Resumen capitulo 3
Resumen capitulo 3Resumen capitulo 3
Resumen capitulo 3
 
que es un socket
que es un socketque es un socket
que es un socket
 
Edwin
EdwinEdwin
Edwin
 
Semana 8 api de socket
Semana  8 api de socketSemana  8 api de socket
Semana 8 api de socket
 
Tarea 3.0.0
Tarea 3.0.0Tarea 3.0.0
Tarea 3.0.0
 
Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas sockets
 
api_de_socket [Explicación Completa]
api_de_socket [Explicación Completa]api_de_socket [Explicación Completa]
api_de_socket [Explicación Completa]
 
Bosquejo general
Bosquejo generalBosquejo general
Bosquejo general
 
Proyecto integrado
Proyecto integradoProyecto integrado
Proyecto integrado
 
Redes
RedesRedes
Redes
 
Tema 7 2º trabajo
Tema 7 2º trabajoTema 7 2º trabajo
Tema 7 2º trabajo
 
Protocolos de la comunicación.diogenes dora
Protocolos de la comunicación.diogenes  doraProtocolos de la comunicación.diogenes  dora
Protocolos de la comunicación.diogenes dora
 
Procolo tcpip josé luis parra borja 9°2
Procolo tcpip josé luis parra borja 9°2Procolo tcpip josé luis parra borja 9°2
Procolo tcpip josé luis parra borja 9°2
 
Sockets
SocketsSockets
Sockets
 

Más de Luis Miguel De Bello (16)

Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
 
Java Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas AdicionalesJava Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas Adicionales
 
Java Web Services - SOAP Binding
Java Web Services - SOAP BindingJava Web Services - SOAP Binding
Java Web Services - SOAP Binding
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
 
Base de datos - Clase 1
Base de datos - Clase 1Base de datos - Clase 1
Base de datos - Clase 1
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
 
Java Web - Session
Java Web - SessionJava Web - Session
Java Web - Session
 
Java Web - Introduccion
Java Web - IntroduccionJava Web - Introduccion
Java Web - Introduccion
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Best Practices
Best PracticesBest Practices
Best Practices
 

Último

thinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsthinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsfioticona20395
 
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfTR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfFRANCISCOJUSTOSIERRA
 
182305655-Manual-Torno-Cnc-Muy-Completo.pdf
182305655-Manual-Torno-Cnc-Muy-Completo.pdf182305655-Manual-Torno-Cnc-Muy-Completo.pdf
182305655-Manual-Torno-Cnc-Muy-Completo.pdfmanualvaca7
 
Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............osoriosantiago887
 
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosEcuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosManuel Alejandro Vivas Riverol
 
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADOIPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADOEdisonRebattaRojas1
 
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdfESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdffredyflores58
 
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfS03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfroycordovabocanegra7
 
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfS02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfGERSONYT1
 
gestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectogestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectoclopez37
 
Trabajos en Altura - USO DEL ARNES .ppt
Trabajos en Altura  - USO DEL ARNES .pptTrabajos en Altura  - USO DEL ARNES .ppt
Trabajos en Altura - USO DEL ARNES .pptdantechaveztarazona
 
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...JeisonArango3
 
JC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJuanCorcuera3
 
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdfNOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdflinderlauradelacruz
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALPamelaGranda5
 
Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.MariaJoseLopez914893
 
Parciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñoParciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñomonicabetancur29
 
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2ErnestoContreras39
 
Teoría de la contingencia en las organizaciones
Teoría de la contingencia en las organizacionesTeoría de la contingencia en las organizaciones
Teoría de la contingencia en las organizacionesCarlosRozo19
 

Último (19)

thinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsthinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msds
 
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfTR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
 
182305655-Manual-Torno-Cnc-Muy-Completo.pdf
182305655-Manual-Torno-Cnc-Muy-Completo.pdf182305655-Manual-Torno-Cnc-Muy-Completo.pdf
182305655-Manual-Torno-Cnc-Muy-Completo.pdf
 
Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............
 
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosEcuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
 
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADOIPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
 
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdfESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
 
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfS03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
 
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfS02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
 
gestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectogestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyecto
 
Trabajos en Altura - USO DEL ARNES .ppt
Trabajos en Altura  - USO DEL ARNES .pptTrabajos en Altura  - USO DEL ARNES .ppt
Trabajos en Altura - USO DEL ARNES .ppt
 
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
 
JC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptx
 
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdfNOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
 
Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.
 
Parciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñoParciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeño
 
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
 
Teoría de la contingencia en las organizaciones
Teoría de la contingencia en las organizacionesTeoría de la contingencia en las organizaciones
Teoría de la contingencia en las organizaciones
 

Sockets TCP

  • 1. Java Advanced Programming Introduccion I http://javacuriosities.blogspot.com.ar/
  • 2. Networking Cuando hablamos de networking nos estamos refiriendo a la posibilidad de trabajar con diversas aplicación ubicadas físicamente en distintas estaciones de trabajo y permitir que se conecten vía una red, para trabajar de manera cooperativa o simplemente enviar y recibir información. Java advanced programming
  • 3. Socket Un Socket es una representación abstracta del extremo (Endpoint) en un proceso de comunicación. Para que se dé la comunicación en una Red, el proceso de comunicación requiere un Socket a cada extremo Emisor/Receptor y viceversa. Java advanced programming
  • 4. Protocolos (Capa 4 - Nivel de Transporte) Cuando conectamos dos sockets en medio existe algo que se conoce como protocolo de transporte, aquí estaremos hablando de TCP o UDP. Java advanced programming
  • 5. TCP TCP (Transmission Control Protocol) - Protocolo de transporte “orientado a conexión” - Garantiza un servicio extremo a extremo fiable - Detectar/retransmitir segmentos de datos perdidos o erróneos - Detectar y descartar segmentos duplicados - Ordenar los segmentos en el destino y pasarlos de forma ordenada a la capa de aplicación - Utilizado en aplicaciones en las que la seguridad en la entrega es más importante que la rapidez - Ejemplos: FTP, HTTP, Telnet, SMTP, etc. Java advanced programming
  • 6. UDP UDP(User Datagram Protocol) - Protocolo de transporte sin conexión - No garantiza un servicio extremo a extremo fiable - No controla la pérdida de paquetes, los errores o la duplicidad - Utilizado en aplicaciones en las que la rapidez en la entrega es más importante que la seguridad - Ejemplos: DNS, SNMP, RIP, RTP, etc Java advanced programming
  • 8. Cliente/Servidor  Modelo cliente-servidor - Es el patrón de comunicación usado por la mayoría de las aplicaciones TCP/UDP - El funcionamiento básico se emplea en otro modelos (Ejemplo: peer-to-peer)  Cliente - Es la aplicación que inicia la conexión o el intercambio de datos con la máquina remota (servidor) - La aplicación cliente normalmente la arranca un usuario cuando quiere utilizar un servicio de la red - Ejemplos: Navegador web (TCP), cliente de e-mail (TCP), consulta al servidor DNS (UDP)  Servidor - Es la aplicación que recibe y acepta la solicitud de conexión o intercambio de datos del cliente - Esta aplicación normalmente está ejecutándose continuamente en la máquina remota y está a la espera de solicitudes de clientes - Ejemplos: Servidor Web (TCP), Servidor de correo electrónico (TCP), Servidor DNS (UDP) Java advanced programming
  • 9. Sockets y Puertos  Sockets y Puertos - El canal de comunicación establecido entre el cliente y el servidor se denomina “socket” (enchufe) - El socket permite el intercambio de datos bidireccional entre cliente y servidor - Cada aplicación servidor o cliente está identificada por un número de puerto  Parámetros en una comunicación TCP o UDP - Dirección IP del cliente: Identifica a la máquina cliente (la que inicia la conexión o intercambio de datos) - Puerto del cliente: Identifica al proceso cliente en la máquina cliente - Dirección IP del servidor: Identifica a la máquina servidora (la que acepta la solicitud de conexión o intercambio de datos) - Puerto del servidor: Identifica al proceso servidor en la máquina servidora Java advanced programming
  • 10. Direccion IP  Una dirección IP es un número que identifica de manera lógica y jerárquica a una interfaz de un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red del protocolo TCP/IP.  Dicho número no se ha de confundir con la dirección MAC que es un número hexadecimal fijo que es asignado a la tarjeta o dispositivo de red por el fabricante, mientras que la dirección IP se puede cambiar.  Es habitual que un usuario que se conecta desde su hogar a Internet utilice una dirección IP. Esta dirección puede cambiar cada vez que se conecta; y a esta forma de asignación de dirección IP se denomina una dirección IP dinámica.  Los sitios de Internet que por su naturaleza necesitan estar permanentemente conectados, generalmente tienen una dirección IP fija, es decir, no cambia con el tiempo. Los servidores de correo, DNS, FTP públicos, y servidores de páginas web necesariamente deben contar con una dirección IP fija o estática, ya que de esta forma se permite su localización en la red.Java advanced programming
  • 11. Puerto  Un puerto es una dirección numérica a través de la cual se procesa un servicio, es decir, no son puertos físicos semejantes al puerto paralelo para conectar la impresora, sino que son direcciones lógicas proporcionadas por el sistema operativo para poder responder.  Las comunicaciones de información relacionada con Web tienen lugar a través del puerto 80 mediante protocolo TCP. Para emular esto en Java, se utiliza la clase Socket.  Teóricamente hay 65535 puertos disponibles, aunque los puertos del 1 al 1023 están reservados al uso de servicios estándar proporcionados por el sistema, quedando el resto libre para utilización por las aplicaciones de usuario. De no existir los puertos, solamente se podría ofrecer un servicio por máquina. Nótese que el protocolo IP no sabe nada al respecto de los números de puerto. Java advanced programming
  • 12. URL (Uniform Resource Locator) Una URL, o dirección, es en realidad un puntero a un determinado recurso. Al especificar una URL, se está indicando: - El protocolo utilizado para acceder al servidor (HTTP, por ejemplo) - El nombre del servidor - El puerto de conexión (Opcional) - El path al recurso - El nombre de un archivo determinado (Opcional a veces) - Un punto de referencia dentro del archivo (Opcional)  La sintaxis general, para una dirección URL, sería: protocolo://nombre_servidor[:puerto]/directorio/archivo#referencia Java advanced programming
  • 14. ServerSocket Esta clase es la encargada de definir un puerto de escucha y actuar de servidor, iniciamos el ServerSocket en un puerto y nos quedamos aceptando peticiones. Java advanced programming
  • 15. Socket Cuando implementamos el lado Cliente debemos usar un socket e indicarle a donde nos vamos a conectar. Java advanced programming
  • 16. Entrada/Salida La API de Java diferencia entre los streams de caracteres y streams de bytes.  Streams de bytes (InputStream y OutputStream) - Diseñados para operar a nivel de byte. - Hay ciertos dispositivos que sólo pueden trabajar a este nivel.  Streams de caracteres (Reader y Writer) - Diseñados para optimizar las operaciones con cadenas de caracteres. - Posteriores a las anteriores. - Soportan codificaciones Unicode-16. - Cualquier fichero de texto puede ser accedido directamente a través de este tipo de stream. - Existen dispositivos, que aunque están preparados para enviar/recibir información de esta naturaleza, no pueden tratarse directamente con este stream. En estos casos, se deberá envolver el stream de bytes con un stream de caracteres. - InputStreamReader - OutputStreamReader Java advanced programming
  • 17. Stream de entradas Java advanced programming
  • 18. Stream de salidas Java advanced programming
  • 19. Jerarquia de flujos de bytes Java advanced programming
  • 20. Jerarquia de flujos de caracteres Java advanced programming
  • 21. Java advanced programming Errores tipicos  Intentar usar un puerto que esta siendo usado por otra aplicación - Obtendremos la exception " java.net.BindException: Address already in use: connect "  Si dejamos el stream abierto y seguimos creando streams en algún momento obtenemos el siguiente error. - No buffer space available (maximum connections reached?):