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

Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativoschikscorpion_23
 
Informe laboratorio 4 ospf rip
Informe laboratorio 4 ospf   ripInforme laboratorio 4 ospf   rip
Informe laboratorio 4 ospf ripHelenio Corvacho
 
Protocolos de capa sesion presentacio-aplicacion
Protocolos de capa sesion presentacio-aplicacionProtocolos de capa sesion presentacio-aplicacion
Protocolos de capa sesion presentacio-aplicacionDaniel Gvtierrex
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 
Arquitectura de redes
Arquitectura de redesArquitectura de redes
Arquitectura de redeswsar85
 
Implantación de sistemas operativos
Implantación de sistemas operativosImplantación de sistemas operativos
Implantación de sistemas operativoscristian cano saez
 
Presentacion Ftp
Presentacion FtpPresentacion Ftp
Presentacion Ftpalexmerono
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Juan Anaya
 
Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Taty Millan
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xmlJuan Anaya
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesossistoperativos
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesDaniel Morales
 

La actualidad más candente (20)

Modelo osi
Modelo   osiModelo   osi
Modelo osi
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativos
 
Informe laboratorio 4 ospf rip
Informe laboratorio 4 ospf   ripInforme laboratorio 4 ospf   rip
Informe laboratorio 4 ospf rip
 
Capa de aplicación
Capa de aplicaciónCapa de aplicación
Capa de aplicación
 
Presentación pop3
Presentación pop3Presentación pop3
Presentación pop3
 
Protocolos de capa sesion presentacio-aplicacion
Protocolos de capa sesion presentacio-aplicacionProtocolos de capa sesion presentacio-aplicacion
Protocolos de capa sesion presentacio-aplicacion
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Arquitectura de redes
Arquitectura de redesArquitectura de redes
Arquitectura de redes
 
Conceptos de software
Conceptos de softwareConceptos de software
Conceptos de software
 
Implantación de sistemas operativos
Implantación de sistemas operativosImplantación de sistemas operativos
Implantación de sistemas operativos
 
Sistemas operativos centralizados
Sistemas operativos centralizadosSistemas operativos centralizados
Sistemas operativos centralizados
 
Buses normalizados
Buses normalizadosBuses normalizados
Buses normalizados
 
Presentacion Ftp
Presentacion FtpPresentacion Ftp
Presentacion Ftp
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Remote Procedure Call (RPC)
Remote Procedure Call (RPC)
 
Seguridad de las redes
Seguridad de las redesSeguridad de las redes
Seguridad de las redes
 
Servicios web xml
Servicios web xmlServicios web xml
Servicios web xml
 
Sistemas operativos procesos
Sistemas operativos procesosSistemas operativos procesos
Sistemas operativos procesos
 
Remote Login
Remote LoginRemote Login
Remote Login
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en Telecomunicaciones
 

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

Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasLeonardoMendozaDvila
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...humberto espejo
 
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...ssuser646243
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 

Último (20)

Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
 
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 

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?):