SlideShare una empresa de Scribd logo
1 de 9
SOCKETS TCP/IP
MONJARAZ HERNÁNDEZ JACQUELINE GUADALUPE
HURTADO ORTIZ MANUEL ALEJANDRO
GRUPO: 551
¿QUÉ ES UN SOCKET?
• Los sockets de Internet constituyen el mecanismo para la
entrega de paquetes de datos provenientes de la tarjeta de red
a los procesos o hilos apropiados. Un socket queda definido
por un par de direcciones IP local y remota, un protocolo de
transporte y un par de números de puerto local y remoto.
CLASE SOCKET
La clase Socket del paquete java.net es fácil de usar comparada con la que proporcionan otros
lenguajes. Java oculta las complejidades derivadas del establecimiento de la conexión de
red y del envío de datos a través de ella. En esencia, el paquete java.net proporciona la misma
interfaz de programación que se utiliza cuando se trabaja con archivos
EL SIGUIENTE EJEMPLO, CLIENTEFECHA.JAVA, MUESTRA LA IMPLEMENTACIÓN DE UN CLIENTE QUE
ACCEDE AL SERVICIO UNIX ``FECHA Y HORA". EL SERVIDOR CONCRETO AL QUE SE CONECTA ES AL
``LOCALHOST". EL SERVICIO ``FECHA Y HORA", POR CONVENIO, SIEMPRE ESTÁ EN EL PUERTO 13. LO
QUE OCURRE ES QUE EL SOFTWARE DEL SERVIDOR ESTÁ EJECUTÁNDOSE CONTINUAMENTE EN LA
MÁQUINA REMOTA, ESPERANDO CUALQUIER TRÁFICO DE RED QUE ``HABLE CON ÉL" EN EL PUERTO
13. CUANDO EL SISTEMA OPERATIVO DE ESTE SERVIDOR RECUPERA UN PAQUETE DE RED QUE
CONTIENE UNA PETICIÓN PARA CONECTAR CON EL PUERTO 13, ACTIVA EL SERVICIO DE ESCUCHA DEL
SERVIDOR Y ESTABLECE LA CONEXIÓN, QUE PERMANECE ACTIVA HASTA QUE ES FINALIZADA POR
ALGUNA DE LAS DOS PARTES.
import java.net.*;
import java.io.*;
import java.util.*;
class ClienteFecha {
public static void main( String[] args ) {
String servidor = "localhost";
int puerto = 13; // puerto de daytime
try {
// Se abre un socket conectado al servidor y al
// puerto estándar de echo
Socket socket = new Socket( servidor,puerto );
System.out.println( "Socket Abierto." );
// Se consigue el canal de entrada
BufferedReader entrada = new BufferedReader(
new InputStreamReader( socket.getInputStream() ) );
System.out.println( "Hora actual en localhost:" );
System.out.println( "t"+entrada.readLine() );
System.out.println( "Hora actual con la clase date:" );
System.out.println( "t" + new Date() );
// Se cierra el canal de entrada
entrada.close();
// Se cierra el socket
socket.close();
} catch( UnknownHostException e ) {
System.out.println( e );
System.out.println( "Debes estar conectado para que esto funcione bien." );
} catch( IOException e ) {
System.out.println( e );
}
}
}
ServerSocket
La clase ServerSocket es la que se utiliza a la hora de crear servidores, al igual
que como se ha visto, la clase Socket se utilizaba para crear clientes.
miranda:~/clases/psd/> java KnockKnockClient
Server: Knock! Knock!
Who's there?
Client: Who's there?
Server: Turnip Turnip who? Client: Turnip who?
Server: Turnip the heat, it's cold in here! Want
another? (y/n) n
Client: n Server: Bye.
miranda:~/clases/psd/>
CLASE THREAD
• Existe un problema con el ejemplo del servidor de chistes de la sección anterior. Suponga que
queremos permitir que varios usuarios se conecten a la vez. Lo normal es que un servidor esté
ejecutándose constantemente en un ordenador, y que los usuarios se conecten simultáneamente al
mismo. En el ejemplo que hemos visto, sólo se admite la conexión de un usuario. Esto podemos
arreglarlo usando threads.
• Cada vez que sepamos que el programa ha establecido una nueva conexión, esto es, siempre que una
petición de servicio tenga éxito, lanzaremos un nuevo thread que será el encargado de monitorizar la
conección entre el servidor y ese cliente. El programa principal sólo se encargará de seguir esperando
nuevas conexiones. Para implementar esto, el bucle principal del servidor debería ser algo como:
•
•
while (true) {
Socket incoming = s.accept();
Thread t = new ThreadServerHandler(incoming)
; t.start();
}
La clase ThreadServerHandler extiende a la clase Thread y contiene el
bucle de comunicación entre el servidor y el cliente en su método run().
class ThreadServerHandler extends Thread {
...
public void run() {
try {
// Establecer los flujos de entrada/salida para el socket
// Procesar las entradas y salidas según el protocolo
// cerrar el socket
}
catch (Excepction e) {
// manipular las excepciones
}
}
}

Más contenido relacionado

La actualidad más candente

Guia de instalacion de ftp en centos 6.4
Guia de instalacion de ftp en centos 6.4Guia de instalacion de ftp en centos 6.4
Guia de instalacion de ftp en centos 6.4Michelle Gutierrez
 
Sockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque DelgadoSockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque Delgadoguest29f06ee
 
Sockets en c
Sockets en cSockets en c
Sockets en cMaShYy
 
Instalar y configurar servidor http en red hat 6.2
Instalar y configurar servidor  http en red hat 6.2Instalar y configurar servidor  http en red hat 6.2
Instalar y configurar servidor http en red hat 6.2cacs Correa
 
Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)
Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)
Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)Daniel Patiño
 
Ejemplos programacion socket java
Ejemplos programacion socket javaEjemplos programacion socket java
Ejemplos programacion socket javaOscar Damian
 
Guía de instalación dns en centos 6.2
Guía de instalación dns en centos 6.2Guía de instalación dns en centos 6.2
Guía de instalación dns en centos 6.2Michelle Gutierrez
 
Servidor dns rhel 6.2
Servidor dns rhel 6.2Servidor dns rhel 6.2
Servidor dns rhel 6.2yimfer1
 
Configuracion de proxy squid en centos
Configuracion de proxy squid en centosConfiguracion de proxy squid en centos
Configuracion de proxy squid en centosmurilloyair
 
Manual de correo red hat linux enterprise
Manual de correo red hat linux enterpriseManual de correo red hat linux enterprise
Manual de correo red hat linux enterpriseFacebook
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextkjuanextk
 
Clase 5 07_pasando de php a node_js
Clase 5 07_pasando de php a node_jsClase 5 07_pasando de php a node_js
Clase 5 07_pasando de php a node_jsfavilaf1200
 

La actualidad más candente (19)

Guia de instalacion de ftp en centos 6.4
Guia de instalacion de ftp en centos 6.4Guia de instalacion de ftp en centos 6.4
Guia de instalacion de ftp en centos 6.4
 
Sockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque DelgadoSockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque Delgado
 
Protocol HTTP
Protocol HTTPProtocol HTTP
Protocol HTTP
 
Http net gui preguntas y soluciones
Http net gui preguntas y solucionesHttp net gui preguntas y soluciones
Http net gui preguntas y soluciones
 
Sockets en c
Sockets en cSockets en c
Sockets en c
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
Instalar y configurar servidor http en red hat 6.2
Instalar y configurar servidor  http en red hat 6.2Instalar y configurar servidor  http en red hat 6.2
Instalar y configurar servidor http en red hat 6.2
 
Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)
Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)
Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)
 
Sockets en JAVA
Sockets en JAVASockets en JAVA
Sockets en JAVA
 
Ejemplos programacion socket java
Ejemplos programacion socket javaEjemplos programacion socket java
Ejemplos programacion socket java
 
Postfix
PostfixPostfix
Postfix
 
Guía de instalación dns en centos 6.2
Guía de instalación dns en centos 6.2Guía de instalación dns en centos 6.2
Guía de instalación dns en centos 6.2
 
Servidor dns rhel 6.2
Servidor dns rhel 6.2Servidor dns rhel 6.2
Servidor dns rhel 6.2
 
Configuracion de proxy squid en centos
Configuracion de proxy squid en centosConfiguracion de proxy squid en centos
Configuracion de proxy squid en centos
 
Manual de correo red hat linux enterprise
Manual de correo red hat linux enterpriseManual de correo red hat linux enterprise
Manual de correo red hat linux enterprise
 
Manual de squid creado por juanextk
Manual de squid creado por juanextkManual de squid creado por juanextk
Manual de squid creado por juanextk
 
Programacion en sockets informe
Programacion en sockets informeProgramacion en sockets informe
Programacion en sockets informe
 
Servidor http
Servidor httpServidor http
Servidor http
 
Clase 5 07_pasando de php a node_js
Clase 5 07_pasando de php a node_jsClase 5 07_pasando de php a node_js
Clase 5 07_pasando de php a node_js
 

Similar a Sockets tcp

Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsdandark2000
 
Programacionclienteservidor
ProgramacionclienteservidorProgramacionclienteservidor
Programacionclienteservidorwilmercampos4
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastHector L
 
C documents and settings_pc10_configuración local_datos de programa_mozilla_...
C  documents and settings_pc10_configuración local_datos de programa_mozilla_...C  documents and settings_pc10_configuración local_datos de programa_mozilla_...
C documents and settings_pc10_configuración local_datos de programa_mozilla_...ORLANDO LOPEZ
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosStalin Jara
 
Sockets y Threads en Java
Sockets y Threads en JavaSockets y Threads en Java
Sockets y Threads en JavaJose Jordan
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos iiMiguel Hernandez
 
Sockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque DelgadoSockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque Delgadomephistodark
 

Similar a Sockets tcp (20)

Desarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas socketsDesarrollo aplicaciones distribuidas sockets
Desarrollo aplicaciones distribuidas sockets
 
Networking
NetworkingNetworking
Networking
 
Programacionclienteservidor
ProgramacionclienteservidorProgramacionclienteservidor
Programacionclienteservidor
 
Sockets java
Sockets javaSockets java
Sockets java
 
presenjava.ppt
presenjava.pptpresenjava.ppt
presenjava.ppt
 
Sockets
SocketsSockets
Sockets
 
Sockets
SocketsSockets
Sockets
 
Socket
SocketSocket
Socket
 
Taller Sockets TCP UDP Multicast
Taller Sockets TCP UDP MulticastTaller Sockets TCP UDP Multicast
Taller Sockets TCP UDP Multicast
 
Sockets
SocketsSockets
Sockets
 
J sockets
J socketsJ sockets
J sockets
 
Semana 8 api de socket
Semana  8 api de socketSemana  8 api de socket
Semana 8 api de socket
 
C documents and settings_pc10_configuración local_datos de programa_mozilla_...
C  documents and settings_pc10_configuración local_datos de programa_mozilla_...C  documents and settings_pc10_configuración local_datos de programa_mozilla_...
C documents and settings_pc10_configuración local_datos de programa_mozilla_...
 
Comunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidosComunicación entre procesos Sistemas distribuidos
Comunicación entre procesos Sistemas distribuidos
 
Sockets y Threads en Java
Sockets y Threads en JavaSockets y Threads en Java
Sockets y Threads en Java
 
Sistemas operativos distribuidos ii
Sistemas operativos distribuidos iiSistemas operativos distribuidos ii
Sistemas operativos distribuidos ii
 
M18
M18M18
M18
 
Servidores
ServidoresServidores
Servidores
 
Sockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque DelgadoSockets En Python Por Antoni Luque Delgado
Sockets En Python Por Antoni Luque Delgado
 
Edwin
EdwinEdwin
Edwin
 

Último

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 

Último (20)

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 

Sockets tcp

  • 1. SOCKETS TCP/IP MONJARAZ HERNÁNDEZ JACQUELINE GUADALUPE HURTADO ORTIZ MANUEL ALEJANDRO GRUPO: 551
  • 2. ¿QUÉ ES UN SOCKET? • Los sockets de Internet constituyen el mecanismo para la entrega de paquetes de datos provenientes de la tarjeta de red a los procesos o hilos apropiados. Un socket queda definido por un par de direcciones IP local y remota, un protocolo de transporte y un par de números de puerto local y remoto.
  • 3. CLASE SOCKET La clase Socket del paquete java.net es fácil de usar comparada con la que proporcionan otros lenguajes. Java oculta las complejidades derivadas del establecimiento de la conexión de red y del envío de datos a través de ella. En esencia, el paquete java.net proporciona la misma interfaz de programación que se utiliza cuando se trabaja con archivos
  • 4. EL SIGUIENTE EJEMPLO, CLIENTEFECHA.JAVA, MUESTRA LA IMPLEMENTACIÓN DE UN CLIENTE QUE ACCEDE AL SERVICIO UNIX ``FECHA Y HORA". EL SERVIDOR CONCRETO AL QUE SE CONECTA ES AL ``LOCALHOST". EL SERVICIO ``FECHA Y HORA", POR CONVENIO, SIEMPRE ESTÁ EN EL PUERTO 13. LO QUE OCURRE ES QUE EL SOFTWARE DEL SERVIDOR ESTÁ EJECUTÁNDOSE CONTINUAMENTE EN LA MÁQUINA REMOTA, ESPERANDO CUALQUIER TRÁFICO DE RED QUE ``HABLE CON ÉL" EN EL PUERTO 13. CUANDO EL SISTEMA OPERATIVO DE ESTE SERVIDOR RECUPERA UN PAQUETE DE RED QUE CONTIENE UNA PETICIÓN PARA CONECTAR CON EL PUERTO 13, ACTIVA EL SERVICIO DE ESCUCHA DEL SERVIDOR Y ESTABLECE LA CONEXIÓN, QUE PERMANECE ACTIVA HASTA QUE ES FINALIZADA POR ALGUNA DE LAS DOS PARTES.
  • 5. import java.net.*; import java.io.*; import java.util.*; class ClienteFecha { public static void main( String[] args ) { String servidor = "localhost"; int puerto = 13; // puerto de daytime try { // Se abre un socket conectado al servidor y al // puerto estándar de echo Socket socket = new Socket( servidor,puerto ); System.out.println( "Socket Abierto." ); // Se consigue el canal de entrada BufferedReader entrada = new BufferedReader( new InputStreamReader( socket.getInputStream() ) ); System.out.println( "Hora actual en localhost:" ); System.out.println( "t"+entrada.readLine() ); System.out.println( "Hora actual con la clase date:" ); System.out.println( "t" + new Date() ); // Se cierra el canal de entrada entrada.close(); // Se cierra el socket socket.close(); } catch( UnknownHostException e ) { System.out.println( e ); System.out.println( "Debes estar conectado para que esto funcione bien." ); } catch( IOException e ) { System.out.println( e ); } } }
  • 6. ServerSocket La clase ServerSocket es la que se utiliza a la hora de crear servidores, al igual que como se ha visto, la clase Socket se utilizaba para crear clientes.
  • 7. miranda:~/clases/psd/> java KnockKnockClient Server: Knock! Knock! Who's there? Client: Who's there? Server: Turnip Turnip who? Client: Turnip who? Server: Turnip the heat, it's cold in here! Want another? (y/n) n Client: n Server: Bye. miranda:~/clases/psd/>
  • 8. CLASE THREAD • Existe un problema con el ejemplo del servidor de chistes de la sección anterior. Suponga que queremos permitir que varios usuarios se conecten a la vez. Lo normal es que un servidor esté ejecutándose constantemente en un ordenador, y que los usuarios se conecten simultáneamente al mismo. En el ejemplo que hemos visto, sólo se admite la conexión de un usuario. Esto podemos arreglarlo usando threads. • Cada vez que sepamos que el programa ha establecido una nueva conexión, esto es, siempre que una petición de servicio tenga éxito, lanzaremos un nuevo thread que será el encargado de monitorizar la conección entre el servidor y ese cliente. El programa principal sólo se encargará de seguir esperando nuevas conexiones. Para implementar esto, el bucle principal del servidor debería ser algo como: • •
  • 9. while (true) { Socket incoming = s.accept(); Thread t = new ThreadServerHandler(incoming) ; t.start(); } La clase ThreadServerHandler extiende a la clase Thread y contiene el bucle de comunicación entre el servidor y el cliente en su método run(). class ThreadServerHandler extends Thread { ... public void run() { try { // Establecer los flujos de entrada/salida para el socket // Procesar las entradas y salidas según el protocolo // cerrar el socket } catch (Excepction e) { // manipular las excepciones } } }