1 Introducción a las Comunicaciones en Red. import java.net.InetAddress; import java.net.UnknownHostException; public class PruebaSockets { public static.

Slides:



Advertisements
Presentaciones similares
CAPA DE TRANSPORTE MODELO OSI
Advertisements

Curso de Java Java – Redes Rogelio Ferreira Escutia.
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Que es y su funcionamiento básico
Programación Interactiva Aplicaciones Cliente-Servidor
“GUI para Conexiones y Transferencia de Datos Seguros”
Sockets y Threads en JAVA
Sistemas Informáticos Distribuidos
ENTRADA/SALIDA ENTRADA/SALIDA DESDE O HACIA UN PROCESO
SOCKETS INTRODUCCIÓN DEFINICIÓN TIPOS DE SOCKETS USO DE SOCKETS.
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
Servidor de Batalla Naval.
El Socket Un socket es un extremo de un link de comunicación entre dos programas que corren en una red. El socket esta asociado (amarrado, bound) a ub.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Christophe Fontano Julien Alagnou Socket.
Área de Ingeniería Telemática 1 Universidad de Sevilla Fundamentos de Telemática Tema 16: Comunicaciones en Red.
En Java las estructuras de repetición son las mismas que en C/C++.
1 Streams en Java Agustín J. González ELO Generalidades Un Stream es simplemente una fuente o destino de bytes. Los streams más comunes son los.
Sockets en Java. Sockets ● Para programar aplicaciones en red en Java se utilizan los Sockets. ● Un socket permite establecer y manejar una conexión entre.
Entrada / Salida. Java adopta de Unix el concepto de stream Un stream es un flujo de datos (secuencia de bytes) que va de una fuente a un destino. Desde.
Cliente/Servidor ● Normalmente queremos algo más que conectarnos a un servidor ● El servidor nos va a dar un servicio ● Protocolo – Orden y tipo de datos.
Ejemplo UDP en Java NOTAS import java.net.*; import java.io.*;
Sockets.
Aplicaciones Cliente/Servidor con Java. Acceso a la red TCP UDP HTTP, Telnet, FTP, SMTP, SNMP, etc (Aplicaciones usuario) IP TCP/IP ● TCP: Transmission.
SOCKETS.
Socket en.NET Grupo # 5. ¿Qué es un Socket? Es la relación entre un puerto de un equipo y el puerto de otro equipo. ¿Qué es un puerto? Es el medio por.
DHCP protocolo de configuración dinámica de host.
Sockets. / Los sockets (zócalos, referido a los enchufes de conexión de cables) son mecanismos de comunicación entre programas a través de una red TCP/IP.
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
Unidad 2 REUTILIZACIÓN DE CLASES Programación Orientada a Objetos M.S.C. Ivette Hernández Dávila.
TCP/IP Introducción TCP/IP Introducción. TCP/IP vs OSI Aplicación Presentación Sesión Transporte Red Enlace Física Aplicación Acceso a la red Física TCP/IP.
Programando Clientes TCP Postítulo La Clase InetAddress Una dirección IP es la dirección absoluta de un computador cualquiera en toda la internet.
2: Capa Aplicación 1 Capítulo 2: Capa Aplicación  2.1 Principios de la aplicaciones de red  2.2 Web y HTTP  2.3 FTP  2.4 Correo Electrónico  SMTP,
ELO3091 Interfaz de Socket Agustín J. González ELO309.
PAQUETES Un paquete es un conjunto de clases, interfaces y subpaquetes relacionados. El paquete define un ámbito de visibilidad: los miembros que no tienen.
TEMA 3. Programación en red
Sockets programming. Tipos de datos. Tipos de datos mas usados en programas cliente-servidor: u-char Unsigned 8-bit character. u-short Unsigned 16-bit.
Java.
User Datagram Protocol UDP Juan Pablo Araneda Danilo Araya Z.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Capa Transporte1 Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
2: Capa Aplicación 1 Capítulo 2: Capa Aplicación - IV ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
TRANSFER FILE BY IP Claudia Codriansky Miguel Olave
2: Capa Aplicación 1 Capa Aplicación: Programación de sockets ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Manejo de Ficheros en JAVA
Andres Marín L. Programación sockets en java.
LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Redes de Datos Integrantes: Guízar Gómez Gerardo Nassir López Ortega Juan Manuel Rodríguez Castro Ronald Michel Silva Rangel Ángel Eduardo Capa 5. Sesión.
INTEGRANTES : Selvin Rivas José Vásquez Francisco Pérez J’ Alberto Patal.
Introducción Nivel 4. Modelo OSI Propiedades Nivel 4 Entrega de mensajes garantizada. Entrega de mensajes en el mismo orden en el que fueron enviados.
Nivel de Transporte en Internet
Modelo OSI Para redes………
2: Capa Aplicación 1 Capa Aplicación: Programación de sockets ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Protocolos de Transporte y Aplicación
Capa Transporte 1 Capítulo 3: Capa Transporte - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al.
Ud.1 Servicios DHCP Índice del libro Índice del libro.
Principios de Redes JORGE CRUZ OCAMPO ALDO CUEVAS HERNANDEZ ADRIAN NAVA.
Archivos de Propiedades
Una Dirección IP es una etiqueta numérica que identifica, de manera lógica y jerárquica, a un interfaz (elemento de comunicación/conexión) de un dispositivo.
Unidad II *. Objetivo de la unidad El alumno establecerá los estándares para verificar el óptimo funcionamiento de una red Ethernet.
INTEGRANTES: JORGE CRUZ DE OCAMPO EDSON SANCHEZ SUAREZ
Capa Aplicación: Programación de sockets
DOCENTE: EMILIO ISMAEL BUSTAMANTE MONTES
i Threads en JAVA Sockets Lorena Alvarez Montiel – D
Capa Aplicación: Programación de sockets
Transcripción de la presentación:

1 Introducción a las Comunicaciones en Red

import java.net.InetAddress; import java.net.UnknownHostException; public class PruebaSockets { public static void main(String[] args) { try { System.out.println("URL & Direccion IP: " ); InetAddress direccion = InetAddress.getByName(" System.out.println(direccion); System.out.println("Direccion IP: " ); int temp = direccion.toString().indexOf('/'); direccion = InetAddress.getByName(direccion.toString().substring(temp + 1)); System.out.println(direccion); System.out.println("Nombre & Direccion IP actual de LocalHost" ); direccion = InetAddress.getLocalHost(); System.out.println(direccion);

System.out.println("Direccion IP del LocalHost: " ); temp = direccion.toString().indexOf('/'); direccion = InetAddress.getByName(direccion.toString().substring(temp + 1)); System.out.println(direccion); System.out.println("Nombre actual de LocalHost" ); System.out.println(direccion.getHostName()); System.out.println("Direccion IP actual de LocalHost" ); byte[] bytes = direccion.getAddress(); for (int cnt = 0; cnt < bytes.length; cnt++) { int uByte = bytes[cnt] < 0 ? bytes[cnt] : bytes[cnt]; System.out.print(uByte + " "); } System.out.println(); } catch (UnknownHostException e) { System.out.println(e); System.out.println("Debes estar conectado para que esto funcione bien."); }

Cada paquete enviado por una capa se compone de control + datos El conjunto control + datos de una capa viaja en los datos de la capa superior

La comunicación entre procesos a través de sockets se basa en la filosofía CLIENTE - SERVIDOR

Tipos de Sockets Socket de flujo (orientado a conexión): al conectar se realiza una búsqueda de un camino libre entre origen y destino. Se mantiene el camino en toda la conexión Socket de datagrama (no orientado a conexión): no se fija un camino. Cada paquete podrá ir por cualquier sitio. No se garantiza la recepción secuencial

Sockets Orientados a la Conexión

1.Cada socket debe tener asignada una dirección única Dirección de host (32 bits) + puerto (16 bits)+protocolo 2.Las direcciones se usan para: Asignar una dirección local a un socket (bind) Especificar una dirección remota (connect o sendto) 3.Las direcciones son dependientes del dominio 4.Cada dominio usa una estructura específica Direcciones en AF_UNIX (struct sockaddr_un) Direcciones en AF_INET(struct sockaddr_in) Direcciones de Sockets

Números de puerto Algunos conocidos: ftp: 20 y 21 telnet: 23 SMTP: 25 Time: 37 www-http: 80 Rangos: Puertos en una máquina ~ puertos posibles 1.Reservados por la IANA para aplicaciones de Internet: (también llamados well-known puertos) 2.Puertos entre 1024 y son puertos registrados para ser usados por los servicios 3.Puertos por encima de para uso privado

En la parte del servidor se tiene: public final class java.net.ServerSocket extends java.lang.Object A) Constructores : public ServerSocket (int port) throws IOException Se crea un socket local al que se enlaza el puerto especificado en el parámetro port, si se especifica un 0 en dicho parámetro creará el socket en cualquier puerto disponible. Puede aceptar hasta 50 peticiones en cola pendientes de conexión por parte de los clientes. public ServerSocket (int port, int count) throws IOException Aquí, el parámetro count sirve para que puede especificarse, el número máximo de peticiones de conexión que se pueden mantener en cola.

B) Métodos : public Socket accept () throws IOException Sobre un ServerSocket se puede realizar una espera de conexión por parte del cliente mediante el método accept(). El proceso espera a que se realice una conexión por parte del cliente para seguir su ejecución. Una vez que se ha establecido una conexión por el cliente, este método devolverá un objeto tipo Socket, a través del cual se establecerá la comunicación con el cliente. public void close () throws IOException Se encarga de cerrar el socket. public InetAddress getInetAddress () Retorna la dirección IP remota a la cual está conectado el socket. Si no lo está retornará null. public int getLocalPort () Retorna el puerto en el que está escuchando el socket. public String toString( ) Retorna un string representando el socket

En la parte del cliente : public final class java.net.Socket extends java.lang.Object A) Constructores : public Socket (InetAddress address, int port) throws IOException Crea un StreamSocket y lo conecta al puerto remoto y dirección IP remota especificados. public Socket (InetAddress address, int port, boolean stream) throws IOException Ídem a la anterior incluyendo el parámetro booleano stream que si es true creará un StreamSocket y si es false un DatagramSocket (En desuso). public Socket (String host, int port) throws UnKnownHostException, IOException Crea un StreamSocket y lo conecta al número de puerto y al nombre de host especificados. public Socket (String host, int port, boolean stream) throws IOException Ídem al anterior incluyendo el parámetro booleano stream que si es true creará un StreamSocket y si es false un DatagramSocket (En desuso).

B) MÉTODOS : public void close() throws IOException Se encarga de cerrar el socket. public InetAddress getInetAddress () Retorna la dirección IP remota a la que se conecta el socket. public InputStream getInputStream () throws IOException Retorna un input stream para la lectura de bytes desde el socket. public int getLocalPort()Retorna el puerto local al que está conectado el socket. public OutputStream getOutputStream () throws IOException Retorna un output stream para la escritura de bytes hacia el socket. public int getPort () Retorna el puerto remoto al que está conectado el socket.

Ejemplo Cliente Servidor

import java.io.*; import java.net.*; class Servidor { int PUERTO = 5000; public Servidor() { try { ServerSocket sServidor = new ServerSocket(PUERTO); System.out.println("Servidor --> Puerto de Escucha: " + PUERTO); for (int numCli = 0; numCli < 3; numCli++) { Socket sCliente = sServidor.accept(); // Crea objeto System.out.println("Sirvo al cliente " + numCli); OutputStream aux = sCliente.getOutputStream();

DataOutputStream flujo = new DataOutputStream(aux); flujo.writeUTF("Cliente No.: " + numCli + " Direccion IP Cliente: "+sCliente.getInetAddress()); sCliente.close(); } System.out.println("Demasiados clientes por hoy"); } catch (Exception e) { System.out.println(e.getMessage()); } public static void main(String[] arg) { new Servidor(); }

import java.io.*; import java.net.*; class Cliente { String HOST = "localhost"; int PUERTO = 5000; public Cliente() { try { Socket sCliente = new Socket(HOST, PUERTO); InputStream aux = sCliente.getInputStream(); DataInputStream flujo = new DataInputStream(aux); System.out.println(flujo.readUTF()); sCliente.close(); } catch (Exception e) { System.out.println(e.getMessage()); } public static void main(String[] arg) { new Cliente(); }

Ejercicio Usando sockets orientados a la conexión, codificar una aplicación cliente-servidor donde los procesos clientes envíen dos números separados por un carácter, y el servidor muestre el resultado de una suma