SlideShare una empresa de Scribd logo
1 de 13
1
UNIVERSIDAD NACIONAL HERMILIO VALDIZAN
FACULTAD DE INGENIERIA INDUSTRIAL Y SISTEMAS
TEMA DE APLICACIÓN:
COMUNICACIÓN ENTRE PROCESOS
SOCKETS
PRESENTADA POR:
 VALDIVIA ESCOBAR, JHONATHAN JAROLD
 PEREZ TRINIDAD, DIEGO DAVID
INDICE
2
1. INTRODUCCION.................................................................................................. 3
2. FUNDAMENTOS.................................................................................................. 4
3. FUNCIONAMIENTO GENÉRICO.......................................................................... 5
4.- JAVA SOCKETS.................................................................................................. 6
4.1.-TIPO DE SOCKETS........................................................................................... 7
4.2.- MODELO DE COMUNICACIONES CON JAVA................................................8
4.7.- EJEMPLO DE USO......................................................................................... 9
4.7.1.- Programa Cliente....................................................................................... 10
4.7.2.- Programa Servidor....................................................................................... 11
4.7.3.- Ejecución..................................................................................................... 12
Introducción
3
Los sockets son mecanismos de comunicación entre procesos que permiten que un
proceso hable (emita o reciba información) con otro procesoincluso estando en distintas
máquinas. Una forma de conseguir que dos programas se transmitan datos.
Un socket no es más que un "canal de comunicación" entre dos programas que corren
sobre ordenadores distintos o incluso en el mismo ordenador.
Desde el punto de vista de programación, un socket no es más que un "fichero" que se
abre de una manera especial.
1.-FUNDAMENTOS
4
Los sockets son un sistema de comunicación entre procesos de diferentes máquinas de
una red, un socket es un punto de comunicación por el cual un proceso puede emitir o
recibir información. Fueron popularizados por Berckley Software Distribución, de la
universidad Norteamericana de Berkley. Los sockets han de ser capaces de utilizar el
protocolo de streams TCP (Transfer Control Protocol) y el de datagramas UDP (User
Datagram Protocol).
2.-Funcionamientogenérico
5
Normalmente,unservidorse ejecutasobre unacomputadoraespecíficay tiene unsocket que
responde enunpuertoespecífico.El servidorúnicamenteespera,escuchandoatravésde socket
a que un cliente haga una petición.
En el ladodel cliente:el cliente conoce el nombre de hostde lamáquinaenlacual el servidor
se encuentraejecutandoyel númerode puertoenel cual el servidorestáconectado.Para
realizarunapeticiónde conexión,el cliente intentaencontraral servidorenlamáquina
servidoraenel puertoespecificado.
Si todo va bien, el servidor acepta la conexión. Además de aceptar, el servidor obtiene
un nuevo socket sobre un puerto diferente. Esto se debe a que necesita un nuevo socket
(y, en consecuencia, un numero de puerto diferente) para seguir atendiendo al socket
original para peticiones de conexión mientras atiende las necesidades del cliente que
se conectó.
Por la parte del cliente, si la conexión es aceptada, un socket se crea de forma
satisfactoria y puede usarlo para comunicarse con el servidor. Es importante darse
cuenta que el socket en el cliente no está utilizando el número de puerto usado para
realizar la petición al servidor. En lugar de éste, el cliente asigna un número de puerto
local a la máquina en la cual está siendo ejecutado.
Ahora el cliente y el servidor pueden comunicarseescribiendo o leyendo en o desde sus
respectivos sockets.
3. JAVA Sockets
6
El paquete java.net de la plataforma Java proporciona una clase Socket, la cual
implementa una de las partes de la comunicación bidireccional entre un programa Java
y otro programa en la red.
La clase Socket se sitúa en la parte más alta de una implementación dependiente de la
plataforma, ocultando los detalles de cualquier sistema particular al programa Java.
Usando la clase java.net.Socket en lugar de utilizar código nativo de la plataforma, los
programas Java pueden comunicarse a través de la red de una forma totalmente
independiente de la plataforma.
De forma adicional, java.net incluye la clase ServerSocket, la cual implementa un
socket el cual los servidores pueden utilizar para escuchar y aceptar peticiones de
conexión de clientes.
DatagramSocket: Implementa tanto el servidor como el cliente cuando se utiliza UDP.
DatagramPacket: Implementa un datagram packet, que se utiliza para la creación de
servicios
InetAddress: Se encarga de implementar la dirección IP. La clase Socket del paquete
java.net es una implementación independiente de la plataforma de un cliente para un
enlace de comunicación de dos vías entre un cliente y un servidor. Las clases
InputStream y OutputStream del paquete java.io son superclases abstractas que definen
el comportamiento de los canales de I/O de tipo stream de Java. java.io.
Nuestro objetivo será conocer cómo utilizar las clases Socket y ServerSocket.
Por otra parte, si intentamos conectar a través de la Web, la clase URL y clases
relacionadas (URLConnection,URLEncoder)son probablemente más apropiadas que
las clases de sockets. Pero de hecho, las clases URL no son más que una conexión
Diagrama de Socket
Propiedades
 Fiabilidad de la Transmisión,No se pierden los datos transmitidos.Conservación
del Orden de los Datos. Los datos llegan en el orden en que se emitieron.
7
 No Duplicación de los Datos. El Dato sólo llega una vez.
 Comunicaciónen modo conectado. La conexión está establecida antes de iniciar
la comunicación un extremo va destinada al otro (implícitamente).
Tipos de Sockets
Existen básicamente dos tipos:
LOS NO ORIENTADOS A CONEXIÓN: El programa de aplicación da la fiabilidad
Es el más simple, lo único que se hace es enviar los datos, mediante la creación de un
socket y utilizando los métodos de envío y recepción apropiados. Se trata de un servicio
de transporte sin conexión. Son más eficientes que TCP, pero no está garantizada la
fiabilidad: los datos se envían y reciben en paquetes, cuya entrega no está garantizada;
los paquetes pueden ser duplicados, perdidos o llegar en un orden diferente al que se
envió.
LOS ORIENTADOS A CONEXIÓN. Comunicaciones fiables,Circuito Virtual
SOCK_STREAM: Para flujo son implementados en el dominio AF_INET por
conexiones TCP/IP .Son el tipo usual en el dominio AF_UNIX.
SOCK_DGRAM : Para datagramas no establecen ni mantienen una conexión también
existe un límite en el tamaño del datagrama que se puede enviar. Se transmite como
un solo mensaje en la red que se puede perder, duplicar o llegar fuera de secuencia.
3.2.- Modelo de comunicaciones con Java
El modelo de sockets más simple es:
8
El servidor establece un puerto y espera durante un cierto tiempo (timeout segundos), a
que el cliente establezca la conexión. Cuando el cliente solicite una conexión, el
servidor abrirá la conexión socket con el método accept( ).
El cliente establece una conexión con la máquina host a través del puerto que se designe
en puerto#
El cliente y el servidor se comunican con manejadores InputStream y OutputStream
Servidor:
• Está ejecutándose y esperando a que otro quiera conectarse a él.
• Nunca da "el primer paso" en la conexión.
• Es el que "sirve" información al que se la pida.
Cliente:
• Es el programa que da el “primer paso” en la conexión.
• En el momento de ejecutarlo o cuando lo necesite, intenta conectarse al servidor.
• Es el que solicita información al servidor.
Arquitectura de confección
5. EJEMPLOSDEUSO
9
 PRIMER ENTREGA
LA CLASE SERVIDOR
Cuando se sirve al segundo cliente, automáticamente el servidor cierra la colección y
manda un mensaje “Demasiados clientes por hoy”
10
LA CLASE CLIENTE
Cuando se lanza el cuarto de cliente, el servidor ya ha cortado la conexión, con lo que se
lanza una excepción.
 SEGUNDAENTREGA
11
LA CLASE SERVIDOR
LA CLASE CLIENTE
FUNCIONAMIENTO
12
El servidor recibe los mensajes y los muestra en la pantalla, hasta que uno de los
clientes envía la palabra “fin”, entonces automáticamente la colección se cierra
BIBLIOGRAFIAS
13
 Apuntes de la asignatura. Campus Virtual.
 TCP/IP Douglas E. Comer.
 Starlinux.net
http://www.starlinux.net/staticpages/index.php?page=20020720164837437

Más contenido relacionado

La actualidad más candente

Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binarioMariela Cabezas
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalclaudyabra
 
Proyecto Redes Sociales - Casos De Uso - Descripcion del problema
Proyecto Redes Sociales - Casos De Uso - Descripcion del problemaProyecto Redes Sociales - Casos De Uso - Descripcion del problema
Proyecto Redes Sociales - Casos De Uso - Descripcion del problemaAlfredo Humberto Escalante Godinez
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesossueich
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Las 4 P en el desarrollo de software
Las 4 P en el desarrollo de softwareLas 4 P en el desarrollo de software
Las 4 P en el desarrollo de softwareSofylutqm
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contextoVerónica Es'Loo
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetosyolandacando1
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acidJefer Lee Parra
 

La actualidad más candente (20)

Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
Odbc
OdbcOdbc
Odbc
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Proyecto Redes Sociales - Casos De Uso - Descripcion del problema
Proyecto Redes Sociales - Casos De Uso - Descripcion del problemaProyecto Redes Sociales - Casos De Uso - Descripcion del problema
Proyecto Redes Sociales - Casos De Uso - Descripcion del problema
 
Modelo 4+1
Modelo 4+1Modelo 4+1
Modelo 4+1
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Las 4 P en el desarrollo de software
Las 4 P en el desarrollo de softwareLas 4 P en el desarrollo de software
Las 4 P en el desarrollo de software
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Fases del Modelo PSP
Fases del Modelo PSPFases del Modelo PSP
Fases del Modelo PSP
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
Ordenacion Burbuja
Ordenacion BurbujaOrdenacion Burbuja
Ordenacion Burbuja
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetos
 
Casos uso uml
Casos uso umlCasos uso uml
Casos uso uml
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Base de datos propiedades acid
Base de datos propiedades acidBase de datos propiedades acid
Base de datos propiedades acid
 

Similar a Programacion en sockets informe (20)

Proyecto final teleprocesamiento
Proyecto final teleprocesamientoProyecto final teleprocesamiento
Proyecto final teleprocesamiento
 
J sockets
J socketsJ sockets
J sockets
 
sockets
sockets sockets
sockets
 
Sockets
SocketsSockets
Sockets
 
Sockets
SocketsSockets
Sockets
 
Sockets
SocketsSockets
Sockets
 
Edwin
EdwinEdwin
Edwin
 
Edwin
EdwinEdwin
Edwin
 
que es un socket
que es un socketque es un socket
que es un socket
 
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-ServidorDesarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
Desarrolo de un videojuego multijugador usando arquitectura Cliente-Servidor
 
Practica cliente servidor java
Practica cliente servidor javaPractica cliente servidor java
Practica cliente servidor java
 
Socket
SocketSocket
Socket
 
Sockets java
Sockets javaSockets java
Sockets java
 
Sockets y servidores
Sockets y servidoresSockets y servidores
Sockets y servidores
 
presenjava.ppt
presenjava.pptpresenjava.ppt
presenjava.ppt
 
Networking
NetworkingNetworking
Networking
 
Sockets tcp
Sockets tcpSockets tcp
Sockets tcp
 
COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDA
 
Definición de socket jony
Definición de socket jonyDefinición de socket jony
Definición de socket jony
 
Definición de socket jony
Definición de socket jonyDefinición de socket jony
Definición de socket jony
 

Programacion en sockets informe

  • 1. 1 UNIVERSIDAD NACIONAL HERMILIO VALDIZAN FACULTAD DE INGENIERIA INDUSTRIAL Y SISTEMAS TEMA DE APLICACIÓN: COMUNICACIÓN ENTRE PROCESOS SOCKETS PRESENTADA POR:  VALDIVIA ESCOBAR, JHONATHAN JAROLD  PEREZ TRINIDAD, DIEGO DAVID INDICE
  • 2. 2 1. INTRODUCCION.................................................................................................. 3 2. FUNDAMENTOS.................................................................................................. 4 3. FUNCIONAMIENTO GENÉRICO.......................................................................... 5 4.- JAVA SOCKETS.................................................................................................. 6 4.1.-TIPO DE SOCKETS........................................................................................... 7 4.2.- MODELO DE COMUNICACIONES CON JAVA................................................8 4.7.- EJEMPLO DE USO......................................................................................... 9 4.7.1.- Programa Cliente....................................................................................... 10 4.7.2.- Programa Servidor....................................................................................... 11 4.7.3.- Ejecución..................................................................................................... 12 Introducción
  • 3. 3 Los sockets son mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro procesoincluso estando en distintas máquinas. Una forma de conseguir que dos programas se transmitan datos. Un socket no es más que un "canal de comunicación" entre dos programas que corren sobre ordenadores distintos o incluso en el mismo ordenador. Desde el punto de vista de programación, un socket no es más que un "fichero" que se abre de una manera especial. 1.-FUNDAMENTOS
  • 4. 4 Los sockets son un sistema de comunicación entre procesos de diferentes máquinas de una red, un socket es un punto de comunicación por el cual un proceso puede emitir o recibir información. Fueron popularizados por Berckley Software Distribución, de la universidad Norteamericana de Berkley. Los sockets han de ser capaces de utilizar el protocolo de streams TCP (Transfer Control Protocol) y el de datagramas UDP (User Datagram Protocol). 2.-Funcionamientogenérico
  • 5. 5 Normalmente,unservidorse ejecutasobre unacomputadoraespecíficay tiene unsocket que responde enunpuertoespecífico.El servidorúnicamenteespera,escuchandoatravésde socket a que un cliente haga una petición. En el ladodel cliente:el cliente conoce el nombre de hostde lamáquinaenlacual el servidor se encuentraejecutandoyel númerode puertoenel cual el servidorestáconectado.Para realizarunapeticiónde conexión,el cliente intentaencontraral servidorenlamáquina servidoraenel puertoespecificado. Si todo va bien, el servidor acepta la conexión. Además de aceptar, el servidor obtiene un nuevo socket sobre un puerto diferente. Esto se debe a que necesita un nuevo socket (y, en consecuencia, un numero de puerto diferente) para seguir atendiendo al socket original para peticiones de conexión mientras atiende las necesidades del cliente que se conectó. Por la parte del cliente, si la conexión es aceptada, un socket se crea de forma satisfactoria y puede usarlo para comunicarse con el servidor. Es importante darse cuenta que el socket en el cliente no está utilizando el número de puerto usado para realizar la petición al servidor. En lugar de éste, el cliente asigna un número de puerto local a la máquina en la cual está siendo ejecutado. Ahora el cliente y el servidor pueden comunicarseescribiendo o leyendo en o desde sus respectivos sockets. 3. JAVA Sockets
  • 6. 6 El paquete java.net de la plataforma Java proporciona una clase Socket, la cual implementa una de las partes de la comunicación bidireccional entre un programa Java y otro programa en la red. La clase Socket se sitúa en la parte más alta de una implementación dependiente de la plataforma, ocultando los detalles de cualquier sistema particular al programa Java. Usando la clase java.net.Socket en lugar de utilizar código nativo de la plataforma, los programas Java pueden comunicarse a través de la red de una forma totalmente independiente de la plataforma. De forma adicional, java.net incluye la clase ServerSocket, la cual implementa un socket el cual los servidores pueden utilizar para escuchar y aceptar peticiones de conexión de clientes. DatagramSocket: Implementa tanto el servidor como el cliente cuando se utiliza UDP. DatagramPacket: Implementa un datagram packet, que se utiliza para la creación de servicios InetAddress: Se encarga de implementar la dirección IP. La clase Socket del paquete java.net es una implementación independiente de la plataforma de un cliente para un enlace de comunicación de dos vías entre un cliente y un servidor. Las clases InputStream y OutputStream del paquete java.io son superclases abstractas que definen el comportamiento de los canales de I/O de tipo stream de Java. java.io. Nuestro objetivo será conocer cómo utilizar las clases Socket y ServerSocket. Por otra parte, si intentamos conectar a través de la Web, la clase URL y clases relacionadas (URLConnection,URLEncoder)son probablemente más apropiadas que las clases de sockets. Pero de hecho, las clases URL no son más que una conexión Diagrama de Socket Propiedades  Fiabilidad de la Transmisión,No se pierden los datos transmitidos.Conservación del Orden de los Datos. Los datos llegan en el orden en que se emitieron.
  • 7. 7  No Duplicación de los Datos. El Dato sólo llega una vez.  Comunicaciónen modo conectado. La conexión está establecida antes de iniciar la comunicación un extremo va destinada al otro (implícitamente). Tipos de Sockets Existen básicamente dos tipos: LOS NO ORIENTADOS A CONEXIÓN: El programa de aplicación da la fiabilidad Es el más simple, lo único que se hace es enviar los datos, mediante la creación de un socket y utilizando los métodos de envío y recepción apropiados. Se trata de un servicio de transporte sin conexión. Son más eficientes que TCP, pero no está garantizada la fiabilidad: los datos se envían y reciben en paquetes, cuya entrega no está garantizada; los paquetes pueden ser duplicados, perdidos o llegar en un orden diferente al que se envió. LOS ORIENTADOS A CONEXIÓN. Comunicaciones fiables,Circuito Virtual SOCK_STREAM: Para flujo son implementados en el dominio AF_INET por conexiones TCP/IP .Son el tipo usual en el dominio AF_UNIX. SOCK_DGRAM : Para datagramas no establecen ni mantienen una conexión también existe un límite en el tamaño del datagrama que se puede enviar. Se transmite como un solo mensaje en la red que se puede perder, duplicar o llegar fuera de secuencia. 3.2.- Modelo de comunicaciones con Java El modelo de sockets más simple es:
  • 8. 8 El servidor establece un puerto y espera durante un cierto tiempo (timeout segundos), a que el cliente establezca la conexión. Cuando el cliente solicite una conexión, el servidor abrirá la conexión socket con el método accept( ). El cliente establece una conexión con la máquina host a través del puerto que se designe en puerto# El cliente y el servidor se comunican con manejadores InputStream y OutputStream Servidor: • Está ejecutándose y esperando a que otro quiera conectarse a él. • Nunca da "el primer paso" en la conexión. • Es el que "sirve" información al que se la pida. Cliente: • Es el programa que da el “primer paso” en la conexión. • En el momento de ejecutarlo o cuando lo necesite, intenta conectarse al servidor. • Es el que solicita información al servidor. Arquitectura de confección 5. EJEMPLOSDEUSO
  • 9. 9  PRIMER ENTREGA LA CLASE SERVIDOR Cuando se sirve al segundo cliente, automáticamente el servidor cierra la colección y manda un mensaje “Demasiados clientes por hoy”
  • 10. 10 LA CLASE CLIENTE Cuando se lanza el cuarto de cliente, el servidor ya ha cortado la conexión, con lo que se lanza una excepción.  SEGUNDAENTREGA
  • 11. 11 LA CLASE SERVIDOR LA CLASE CLIENTE FUNCIONAMIENTO
  • 12. 12 El servidor recibe los mensajes y los muestra en la pantalla, hasta que uno de los clientes envía la palabra “fin”, entonces automáticamente la colección se cierra BIBLIOGRAFIAS
  • 13. 13  Apuntes de la asignatura. Campus Virtual.  TCP/IP Douglas E. Comer.  Starlinux.net http://www.starlinux.net/staticpages/index.php?page=20020720164837437