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