Sunteți pe pagina 1din 32

Facultad de Ingeniera y Arquitectura

Carrera de Ingeniera de Sistemas


PROGRAMACION CONCURRENTE Y
DISTRIBUIDA

Comunicacin remota a travs de Sockets RUMBO A LA ACREDITACIN

Ing. Juan Vera Castillo


Agenda

Sockets
Tipos sockets
Comunicacin de sockets TCP en una aplicacin java
Ejercicios

Facultad de Ingeniera y Arquitectura Carrera de Ingeniera de Sistemas Rumbo a la Acreditacin


SOCKETS
Es una representacin abstracta para los extremos de un proceso de
comunicacin (emisor y receptor).
para que se d la comunicacin unidireccional o bidireccional en una red, el
proceso requiere de un Socket en cada extremo ( Emisor / Receptor y
viceversa).
Tipos de Socket

Sockets Stream (sockets TCP): sockets orientados a


conexin que proporcionan una comunicacin bidireccional
y fiable.

Sockets Datagrama (sockets UDP): sockets no orientados a


conexin que proporcionan una comunicacin bidireccional
no fiable.
PROTOCOLOS DEL NIVEL DE TRANSPORTE
El paquete java.net
Comunicacin de sockets TCP en una aplicacin java
Creacin de un Socket del Lado Cliente
Creacin de un Socket del Lado Servidor
LOS SOCKETS DE AMBOS LADOS
COMUNICACIN A TRAVES DE SOCKETS
COMUNICACIN A TRAVES DE SOCKETS
COMUNICACIN A TRAVES DE SOCKETS
ENVIO DE DATOS DEL CLIENTE AL SERVIDOR
RECEPCION DE DATOS EN EL LADO SERVIDOR
LA CONEXIN SE CIERRA
CREACION DEL SOCKET TCP DEL LADO CLIENTE
SERVIDOR ACEPTANDO A UN CLIENTE
ENVIO DE PARAMETROS EN UNA
CONEXIN A TRAVES DE SOCKETS TCP
RECEPCIN DE PARAMETROS EN UNA
CONEXIN A TRAVES DE SOCKETS TCP
Ejercicios
Ejemplo 01
Para comprender el funcionamiento de los sockets no hay nada mejor que
estudiar un ejemplo.

El que a continuacin se presenta establece un pequeo dilogo entre un


programa servidor y sus clientes, que intercambiarn cadenas de informacin.
CREAR UN PROYECTO
EJECUTAR EL SERVIDOR

El servidor dice : Escucho el puerto 5000


Ejecutar el Cliente
(primera vez)

El Servidor dice : Mensaje que llega al Cliente :


Ejecutar el Cliente
(segunda vez)

El Servidor dice : Mensaje que llega al Cliente :


Ejecutar el Cliente
(tercera vez)

El Servidor dice : Mensaje que llega al Cliente :


import java.io.*;
import java.net.*;
public class Cliente
PROGRAMA CLIENTE
{
static final String host = "localhost";
static final int puerto = 5000;
public Cliente()
{
try
{
Socket skCliente = new Socket(host, puerto);
DataInputStream flujo = new DataInputStream(skCliente.getInputStream());
System.out.println(flujo.readUTF());
skCliente.close();
}catch(Exception e)
{
}
}
public static void main(String args[])
{
new Cliente();
}
}
import java.io.*;
import java.net.*;
public class Servidor
PROGRAMA SERVIDOR
{
static final int puerto = 5000;
public Servidor()
{
try
{
ServerSocket skServidor = new ServerSocket(puerto);
System.out.println("Escucho el puerto : " + puerto);
for(int numCli = 1; numCli<4; numCli++)
{
Socket skCliente = skServidor.accept();
System.out.println("Sirvo al cliente : " + numCli);
DataOutputStream flujo = new DataOutputStream(skCliente.getOutputStream());
flujo.writeUTF("Hola Cliente : " + numCli);
skCliente.close();
}
System.out.println("Ya no hay mas clientes");
skServidor.close();
}catch(Exception e)
{
}
}
public static void main(String args[])
{
new Servidor();
}
}
Conclusiones
Finales

Facultad de Ingeniera y Arquitectura Carrera de Ingeniera de Sistemas Rumbo a la Acreditacin


RUMBO A LA ACREDITACIN DE LA CARRERA DE INGENIERA DE SISTEMAS

S-ar putea să vă placă și