SlideShare una empresa de Scribd logo
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

PPTX
Sockets/ tcp
PDF
ODP
Curso Redes Linex 2
PPT
Proyecto Python
PDF
Servidor FTP en Centos 6
DOCX
Instalacion y configuracon servicio dns red hat 6.2
DOCX
Instalacion y configuración de servicio ftp en red hat 6.2
DOCX
Instalacion y configuracion de servicio dhcp en redhat 6.2
Sockets/ tcp
Curso Redes Linex 2
Proyecto Python
Servidor FTP en Centos 6
Instalacion y configuracon servicio dns red hat 6.2
Instalacion y configuración de servicio ftp en red hat 6.2
Instalacion y configuracion de servicio dhcp en redhat 6.2

La actualidad más candente (19)

PDF
Guia de instalacion de ftp en centos 6.4
PPT
Sockets En Python Por Antoni Luque Delgado
PDF
Http net gui preguntas y soluciones
DOCX
Sockets en c
PDF
DOCX
Instalar y configurar servidor http en red hat 6.2
PDF
Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)
PPT
Sockets en JAVA
PDF
Ejemplos programacion socket java
DOCX
Postfix
PDF
Guía de instalación dns en centos 6.2
PDF
Servidor dns rhel 6.2
DOCX
Configuracion de proxy squid en centos
PDF
Manual de correo red hat linux enterprise
DOCX
Manual de squid creado por juanextk
DOCX
Programacion en sockets informe
PPTX
Servidor http
DOCX
Clase 5 07_pasando de php a node_js
Guia de instalacion de ftp en centos 6.4
Sockets En Python Por Antoni Luque Delgado
Http net gui preguntas y soluciones
Sockets en c
Instalar y configurar servidor http en red hat 6.2
Instalacion y configuracion de dhcp en open bs dequipo3.ficha322000 (2)
Sockets en JAVA
Ejemplos programacion socket java
Postfix
Guía de instalación dns en centos 6.2
Servidor dns rhel 6.2
Configuracion de proxy squid en centos
Manual de correo red hat linux enterprise
Manual de squid creado por juanextk
Programacion en sockets informe
Servidor http
Clase 5 07_pasando de php a node_js
Publicidad

Similar a Sockets tcp (20)

PDF
Desarrollo aplicaciones distribuidas sockets
PDF
Programacionclienteservidor
PDF
Sockets java
PPT
presenjava.ppt
DOCX
Sockets
DOCX
Sockets
PDF
Taller Sockets TCP UDP Multicast
PDF
PDF
J sockets
PPT
Semana 8 api de socket
PDF
C documents and settings_pc10_configuración local_datos de programa_mozilla_...
PPTX
Comunicación entre procesos Sistemas distribuidos
PPT
Sockets y Threads en Java
PDF
Sistemas operativos distribuidos ii
PDF
Servidores
PPT
Sockets En Python Por Antoni Luque Delgado
DOCX
Desarrollo aplicaciones distribuidas sockets
Programacionclienteservidor
Sockets java
presenjava.ppt
Sockets
Sockets
Taller Sockets TCP UDP Multicast
J sockets
Semana 8 api de socket
C documents and settings_pc10_configuración local_datos de programa_mozilla_...
Comunicación entre procesos Sistemas distribuidos
Sockets y Threads en Java
Sistemas operativos distribuidos ii
Servidores
Sockets En Python Por Antoni Luque Delgado
Publicidad

Último (20)

PDF
Diapositiva proyecto de vida, materia catedra
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPT
Que son las redes de computadores y sus partes
PDF
Maste clas de estructura metálica y arquitectura
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
taller de informática - LEY DE OHM
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
Presentación de Redes de Datos modelo osi
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
SAP Transportation Management para LSP, TM140 Col18
Diapositiva proyecto de vida, materia catedra
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Influencia-del-uso-de-redes-sociales.pdf
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
historia_web de la creacion de un navegador_presentacion.pptx
Calidad desde el Docente y la mejora continua .pdf
introduccion a las_web en el 2025_mejoras.ppt
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Que son las redes de computadores y sus partes
Maste clas de estructura metálica y arquitectura
Plantilla para Diseño de Narrativas Transmedia.pdf
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
El-Gobierno-Electrónico-En-El-Estado-Bolivia
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
taller de informática - LEY DE OHM
Sesion 1 de microsoft power point - Clase 1
Presentación de Redes de Datos modelo osi
Estrategia de apoyo tecnología miguel angel solis
SAP Transportation Management para LSP, TM140 Col18

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 } } }