tema 16: comunicaciones en red

38
Área de Ingeniería Telemática Área de Ingeniería Telemática 1 Universidad de Sevilla Universidad de Sevilla Fundamentos de Telemática Tema 16: Comunicaciones en Red Tema 16: Comunicaciones en Red

Upload: schuyler

Post on 10-Jan-2016

40 views

Category:

Documents


2 download

DESCRIPTION

Tema 16: Comunicaciones en Red. Índice. Introducción. Socket. URL. Datagramas. Introducción. Se puede realizar con cualquier lenguaje java.net Las clases encapsulan el paradigma de “socket” (conectores) creados por BSD (Berkeley Software Distribution) en la Universidad de Berkeley. - PowerPoint PPT Presentation

TRANSCRIPT

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

1

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Tema 16: Comunicaciones en RedTema 16: Comunicaciones en Red

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

2

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

ÍndiceÍndice

Introducción.Introducción. Socket. Socket. URL.URL. Datagramas.Datagramas.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

3

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

IntroducciónIntroducción

Se puede realizar con cualquier lenguajeSe puede realizar con cualquier lenguaje java.netjava.net Las clases encapsulan el paradigma de “socket” Las clases encapsulan el paradigma de “socket”

(conectores) creados por BSD (Berkeley Software (conectores) creados por BSD (Berkeley Software Distribution) en la Universidad de Berkeley.Distribution) en la Universidad de Berkeley.

UNIX 4.2BSD (Bill Joy, en Sun Microsystems).UNIX 4.2BSD (Bill Joy, en Sun Microsystems). Los programas Java están en la capa de aplicación.Los programas Java están en la capa de aplicación. Pasos: Abrir, leer/escribir, cerrar.Pasos: Abrir, leer/escribir, cerrar.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

4

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

TCP (Transport Control Protocol)TCP (Transport Control Protocol)

Comunicaciones fiables, establecen una conexión y Comunicaciones fiables, establecen una conexión y comunicaciones en ambos sentidos.comunicaciones en ambos sentidos.

El orden en que se envían y reciben los datos es crítico.El orden en que se envían y reciben los datos es crítico. Servicio telefónico.Servicio telefónico. Ejemplos:Ejemplos:

HTTP (Hypertext Transfer Protocol)HTTP (Hypertext Transfer Protocol) FTP (File Transfer Protocol)FTP (File Transfer Protocol) TelnetTelnet

Clases: Clases: URLURL, , URLConnectionURLConnection, , SocketSocket y y ServerSocket.ServerSocket.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

5

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

UDP (User Datagram Protocol)UDP (User Datagram Protocol)

No está orientado a conexión. No se garantiza la No está orientado a conexión. No se garantiza la entrega.entrega.

Servicio postal.Servicio postal. Los paquetes de datos: Los paquetes de datos: datagramasdatagramas.. Clases: Clases: DatagramPacketDatagramPacket, , DatagramSocketDatagramSocket y y

MulticastSocketMulticastSocket..

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

6

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

PuertosPuertos

Distingue la aplicación dentro de la máquina.Distingue la aplicación dentro de la máquina. Los datos van acompañados de Los datos van acompañados de

la dirección de la computadora (32 bits)la dirección de la computadora (32 bits) el puerto al que va destinado (16 bits)el puerto al que va destinado (16 bits)

Rango para los puertos: 0-65535Rango para los puertos: 0-65535

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

7

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

ServidorServidorServidorServidor PuertoPuertoPuertoPuerto ClienteClienteClienteCliente

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

8

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

TCP o UDPTCP o UDP

Aplic.Aplic.Aplic.Aplic. Aplic.Aplic.Aplic.Aplic. Aplic.Aplic.Aplic.Aplic. Aplic.Aplic.Aplic.Aplic.

puertopuerto puertopuerto puertopuerto puertopuerto

DatosDatos#puerto#puertoDatosDatos

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

9

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Conectores reservadosConectores reservados

13/udp13/udp daytime

PuertoPuerto ServicioServicio

23 /tcp23 /tcp telnet25 /tcp25 /tcp E-mail79 /tcp79 /tcp finger80 /tcp80 /tcp HTTP119 /tcp119 /tcp netnews

TCP/IP reserva los primeros 1024 para sus protocolos TCP/IP reserva los primeros 1024 para sus protocolos específicos.específicos.

21/tcp21/tcp ftp

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

10

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Servicio de nombres de Dominio (DNS)Servicio de nombres de Dominio (DNS)

Existe una jerarquía de nombres asociada a los Existe una jerarquía de nombres asociada a los números que representan las direcciones que se números que representan las direcciones que se conoce como DNS.conoce como DNS.

Permite teclear www.yahoo.com en vez de Permite teclear www.yahoo.com en vez de 205.216.146.71.205.216.146.71.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

11

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

AplicaciónAplicación(HTTP, ftp, telnet, ...)(HTTP, ftp, telnet, ...)

AplicaciónAplicación(HTTP, ftp, telnet, ...)(HTTP, ftp, telnet, ...)

TransporteTransporte(TCP, UDP, ...)(TCP, UDP, ...)

TransporteTransporte(TCP, UDP, ...)(TCP, UDP, ...)

RedRed(IP, ...)(IP, ...)

RedRed(IP, ...)(IP, ...)

EnlaceEnlace(dispositivo driver, ...)(dispositivo driver, ...)

EnlaceEnlace(dispositivo driver, ...)(dispositivo driver, ...)

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

12

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

El paquete java.net (I)El paquete java.net (I)

SocketSocket Implementa un cliente Socket.Implementa un cliente Socket.

ServerSocketServerSocket Implementa un servidor Socket.Implementa un servidor Socket.

SocketImplSocketImpl Clase abstracta.Clase abstracta.

SocketPermissionSocketPermission Acceso a la red vía socketAcceso a la red vía socket

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

13

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

El paquete java.net (II)El paquete java.net (II)

URLURL Puntero a un recurso en la world wide webPuntero a un recurso en la world wide webPuntero a un recurso en la world wide webPuntero a un recurso en la world wide web

URLConnectionURLConnection Clase abstracta. Superclase para comunic. entre aplic y URL.Clase abstracta. Superclase para comunic. entre aplic y URL.

URLClassLoaderURLClassLoader Carga clases y recursosCarga clases y recursosCarga clases y recursosCarga clases y recursos

URLDecoderURLDecoder Convierte el formato MIME en StringConvierte el formato MIME en String

URLEncoderURLEncoder Convierte el formato String en MIMEConvierte el formato String en MIMEConvierte el formato String en MIMEConvierte el formato String en MIME

URLStreamHandlerURLStreamHandler Clase abstracta.Clase abstracta.

HttpURLConnectionHttpURLConnection Un URLConnection con soporte para características http.Un URLConnection con soporte para características http.

JarURLConnectionJarURLConnection Uso de archivos JARUso de archivos JARUso de archivos JARUso de archivos JAR

ContentHandlerContentHandler Clase abstracta.Clase abstracta.Clase abstracta.Clase abstracta.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

14

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

El paquete java.net (III)El paquete java.net (III)

MulticastSocketMulticastSocket Tx/Rx de paquetes IP multicast.Tx/Rx de paquetes IP multicast.Tx/Rx de paquetes IP multicast.Tx/Rx de paquetes IP multicast.

DatagramPacketDatagramPacket Clase que representa un datagrama.Clase que representa un datagrama.

DatagramSocketDatagramSocket Tx/Rx de datagramas en un socket.Tx/Rx de datagramas en un socket.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

15

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

El paquete java.net (y IV)El paquete java.net (y IV)

InetAddressInetAddress Respresenta una dirección de IP.Respresenta una dirección de IP.

AuthenticatorAuthenticator Autentificación para una conexión a la red.Autentificación para una conexión a la red.Autentificación para una conexión a la red.Autentificación para una conexión a la red.

NetPermissionNetPermission Clase para permisos en la red.Clase para permisos en la red.Clase para permisos en la red.Clase para permisos en la red.

PasswordAuthenticationPasswordAuthentication Para autentificaciónPara autentificaciónPara autentificaciónPara autentificación

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

16

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

InetAddressInetAddress

Encapsula direcciones IP y sus nombres.Encapsula direcciones IP y sus nombres. No tiene constructores visibles, pero se proporcionan métodos No tiene constructores visibles, pero se proporcionan métodos

estáticos.estáticos.

static InetAddress getLocalHost() Devuelve el objeto que representa al nodo local.

static InetAddress getByName(String nomNodo) Devuelve el nombre del nodo que se le pasa. Puede lanzar UnknownHostException (excepción de nodo

desconocido). static InetAddress[] getAllByName(String nomNod)

devuelve una matriz que representa todas las direcciones en las que se traduce un nombre dado.

Puede lanzar UnknownHostException.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

17

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

import java.net.InetAddress;

class dire{ public static void main(String args[]) {

InetAddress direccion;try{

direccion = InetAddress.getLocalHost();System.out.println(direccion);System.out.println();

direccion = InetAddress.getByName("trajano.us.es");System.out.println(direccion);System.out.println();InetAddress SW[] = InetAddress.getAllByName("trajano.us.es");for(int i = 0; i<SW.length; i++)

System.out.println(SW[i]);}catch (Exception e){

System.out.println("Error en ejecución: "+e);}

}}/*[16]-adriano:Mon> java direadriano/193.147.162.138

trajano.us.es/193.147.162.130

trajano.us.es/193.147.162.130 [17]-adriano:Mon> */

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

18

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Métodos no estáticosMétodos no estáticos

String getHostName() Devuelve como cadena el nombre del nodo.

byte[] getAddress() Devuelve una matriz de bytes de cuatro elementos que

representa la dirección en Internet del objeto en el "orden de bytes de la red".

String toString() Devuelve el nombre del nodo y la dirección IP. Ejemplo,

"starwave.com/192.147.170.6".

boolean equals(InetAddress otroNodo) Devuelve true si los objeto tiene la misma dirección.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

19

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

SocketSocket

SocketSocket: Comunic. de bajo nivel.: Comunic. de bajo nivel. URLURL y y URLConnectionURLConnection: Comunic. de alto nivel.: Comunic. de alto nivel. Sobre TCP, cada programa establece una conexión (cliente-Sobre TCP, cada programa establece una conexión (cliente-

servidor) y va ligado a un socket.servidor) y va ligado a un socket. Los socket son puntos finales del enlace.Los socket son puntos finales del enlace. Los procesos los trata como descriptores de ficheros.Los procesos los trata como descriptores de ficheros. El Cliente conoce:El Cliente conoce:

el nombre la máquina servidorael nombre la máquina servidora número de puerto al que está conectadonúmero de puerto al que está conectado

El Servidor:El Servidor: Acepta la conexiónAcepta la conexión

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

20

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Modelo de ComunicacionesModelo de Comunicaciones

ServidorServidor ClienteCliente

ServerSocket(#port)ServerSocket(#port)

accept()accept()Socket(host,#port)Socket(host,#port)

OutputStream OutputStream

InputStreamInputStream

OutputStream OutputStream

InputStreamInputStream

close()close() close()close()

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

21

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Constructores para el clienteConstructores para el cliente

Cuando se crea un objeto Socket, se establece una Cuando se crea un objeto Socket, se establece una conexión entre cliente y servidor.conexión entre cliente y servidor.

Socket(String nodo, int puerto) Crea un conector que conecta el nodo local con el

nodo y puerto especificados.

Socket(InetAddress dirección, int puerto) Crea un conector utilizando un objeto InetAddress

ya existente y un puerto. En total son 8 constructores (versión 1.2).

Puede lanzar UnknownHostException o IOException.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

22

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Información del Socket y flujosInformación del Socket y flujos

InetAddress getInetAddress() Devuelve la InetAddress asociada con el objeto Socket.

int getPort() Devuelve el puerto remoto al que está conectado este objeto Socket.

int getLocalPort() Devuelve el puerto local al que está conectado este objeto Socket.

InputStream getInputStream() Devuelve el InputStream (flujo de entrada) asociado con este conector.

OutputStream getOutputStream() Devuelve el OutputStream (flujo de salida) asociado con este conector.

void close() Cierra el InputStream y el OutputStream.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

23

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Constructores para el ServidorConstructores para el Servidor

ServerSocket(int puerto) Crea un conector en el servidor en un puerto

específico.

ServerSocket(int puerto, int backlog) Se configura la longitud máx. de la cola de entrada.

ServerSocket(int port, int backlog, InetAddress dir) Ligada a una dirección.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

24

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Creación de flujos de EntradaCreación de flujos de Entrada

En el clienteEn el cliente se crea un flujo de entrada para recibir se crea un flujo de entrada para recibir las respuestas del servidor (las respuestas del servidor (DataInputStreamDataInputStream))

Socket sock = new Socket(“host”,puerto);Socket sock = new Socket(“host”,puerto);

DataInputStream in = new DataInputStream(DataInputStream in = new DataInputStream(sock.getInputStream()sock.getInputStream());); DataInputStreamDataInputStream tiene métodos como tiene métodos como read()read(), ,

readLine()readLine(), , readChar(), readInt()readChar(), readInt(), …, … En el servidorEn el servidor también, para recibir a los clientes también, para recibir a los clientesServerSocket sock = new ServerSocket(puerto);ServerSocket sock = new ServerSocket(puerto);

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

25

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Creación de flujos de SalidaCreación de flujos de Salida

En el clienteEn el cliente se crea un flujo de salida para enviar se crea un flujo de salida para enviar información al servidor (información al servidor (DataOutputStreamDataOutputStream o o PrintStreamPrintStream))

PrintStream out = new PrintStream(PrintStream out = new PrintStream(sock.getOutputStream()sock.getOutputStream()););

DataOutputStream out = new DataOutputStream out = new DataInputStream(DataInputStream(sock.getOutputStream()sock.getOutputStream()););

PrintStreamPrintStream tiene los métodos tiene los métodos writewrite y y printlnprintln.. DataOutputStreamDataOutputStream escribe los datos primarios y escribe los datos primarios y

writeByteswriteBytes.. En el servidorEn el servidor se envía información al cliente se envía información al clientePrintStream out = new PrintStream(PrintStream out = new PrintStream(sock.getOutputStream()sock.getOutputStream()););

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

26

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

import java.net.*;import java.io.*;

class Whois{ public static void main(String args[]) throws Exception{

int c;Socket s = new Socket("intermic.net",43);InputStream in = s.getInputStream();OutputStream out = s.getOutputStream();String str = (args.length==0 ? ”starwave.com”: args[0]+"\n”);byte buf[] = new byte[str.length()];

str.getBytes(0,str.length(), buf, 0 );out.write(buf);while((c = in.read()) != -1) {

System.out.println((char)c);}s.close();in.close();out.close();

}}

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

27

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

import java.io.*;import java.net.*;

public class EchoClient { public static void main(String[] args) throws IOException {

Socket echoSocket = null; PrintWriter out = null; BufferedReader in = null;

try {

echoSocket = new Socket("adriano", 7);//crea un socket// dos siguientes lineas son para leer/escribir en socket

out = new PrintWriter(echoSocket.getOutputStream(), true); in = new BufferedReader(new

InputStreamReader(echoSocket.getInputStream()));

} catch (UnknownHostException e) { System.err.println("No conoce el host: adriano."); } catch (IOException e) { System.err.println("Error E/S en la conexion: adriano."); }

Continúa ...Continúa ...

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

28

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

if(echoSocket!=null&& in!=null && out!=null){BufferedReader stdIn = new BufferedReader(new

InputStreamReader(System.in));String userInput;

while ((userInput = stdIn.readLine()) != null) { out.println(userInput); System.out.println("echo: " + in.readLine());}

out.close();in.close();stdIn.close();echoSocket.close();

} }}

Continuación …Continuación …

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

29

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Referencia (dirección) de un recurso de Internet.Referencia (dirección) de un recurso de Internet.

Protocolos: HTTP, FTP, Gopher, File y News.Protocolos: HTTP, FTP, Gopher, File y News. Nombre del recurso:Nombre del recurso:

URL (Uniform Resource Locator)URL (Uniform Resource Locator)

httphttp://java.sun.com://java.sun.com

Identificador de protocoloIdentificador de protocolo

Nombre del recursoNombre del recurso

Nombre hostNombre host Nombre de la máquina en la que está el recurso.Nombre de la máquina en la que está el recurso.

Nombre ficheroNombre fichero Nombre del camino al fichero en la máquina.Nombre del camino al fichero en la máquina.

Número de PuertoNúmero de Puerto Puerto al que se conecta (opcional).Puerto al que se conecta (opcional).

ReferenciaReferencia Referencia al nombre (opcional).Referencia al nombre (opcional).

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

30

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Constructores (I)Constructores (I)

URL absolutoURL absoluto, contiene toda la información para , contiene toda la información para alcanzar el recursoalcanzar el recurso

URLURL((StringString cadcad), ejemplo), ejemploURL gamelan = new URL("http://www.gamelan.com/");

URL relativoURL relativo, los ficheros HTML dan de forma , los ficheros HTML dan de forma relacionada con el fichero en el que están.relacionada con el fichero en el que están.

URLURL((URL URL base base ,String,String relativorelativo), ejemplo), ejemploURL game = new URL("http://www.gamelan.com/pages/");

URL gamelan = new URL(game,”Gamelan.html");

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

31

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Constructores (y II)Constructores (y II)

URL(String proto, String host, int port, String file)

URL(String proto, String host, String file)

URL gam = new URL ("http", ”www.gamelan.com”, 80, "/pages/Gamelan. html");

Crea un objeto URL para el siguiente URL:Crea un objeto URL para el siguiente URL:

http://www.gamelan.com:80/pages/Gamelan.network.html MalformedURLExceptionMalformedURLException

Si el protocolo es desconocido o los argumentos del Si el protocolo es desconocido o los argumentos del constructor son incorrectos.constructor son incorrectos.

Los objetos URL se escriben una vez (no se pueden Los objetos URL se escriben una vez (no se pueden cambiar).cambiar).

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

32

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

MétodosMétodos

String getProtocol()Devuelve el componente identificador de protocolo del URL

String getHost()Devuelve el nombre de host del URL

int getPort()Devuelve el número de puerto del componente URL. Devuelve

un entero que es el número de puerto. Si el puerto no es asignado explicitamente devuelve -1.

String getFile()Devuelve el nombre del fichero del componente del URL.

String toExternalForm()Devuelve una cadena que representa un URL.

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

33

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

EjemploEjemplo

import java.net.*;

class Patric{ public static void main(String args[]) throws MalformedURLException{

URL hp = new URL ("http://www.starwave.com/people/naughton/");System.out.println("Protocolo: "+ hp.getProtocol());System.out.println("Puerto: "+ hp.getPort());System.out.println("Nodo: "+ hp.getHost());System.out.println("Archivo: "+ hp.getFile());System.out.println("Ext: "+ hp.toExternalForm());

}}/*Protocolo: httpPuerto: -1Nodo: www.starwave.comArchivo: /people/naughton/Ext: http://www.starwave.com/people/naughton/ */

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

34

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Conexión a un URLConexión a un URL

URLConnection openConnection()URLConnection openConnection()

import java.net.*;import java.io.*;

class URL0{ public static void main(String args[]) {

try{URL yahoo = new URL ("http://www.yahoo.com/");yahoo.openConnection();System.out.println("OK ");

}catch(MalformedURLException e){System.out.println("Excep: " + e);

}catch(IOException e){System.out.println("Excep: " + e);

} }}

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

35

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Leyendo de un URLLeyendo de un URL

InputStream openStream()InputStream openStream()

import java.net.*;import java.io.*;

class URL1{ public static void main(String args[]) throws Exception{

URL yahoo = new URL ("http://www.yahoo.com/");BufferedReader in = new BufferedReader(

new InputStreamReader(yahoo.openStream()));

String inputLine;

while((inputLine = in.readLine())!= null)System.out.println(inputLine);

in.close(); }}

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

36

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

Leyendo de un URLConnectionLeyendo de un URLConnection

InputStream getInputStream()InputStream getInputStream()import java.net.*;import java.io.*;

class URL2{ public static void main(String args[]) throws Exception{

URL yahoo = new URL ("http://www.yahoo.com/");URLConnection yc = yahoo.openConnection();BufferedReader in = new BufferedReader(

new InputStreamReader(yc.getInputStream()));

String inputLine;

while((inputLine = in.readLine())!= null)System.out.println(inputLine);

in.close(); }}

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

37

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

DatagramasDatagramas

Los Datagramas se implementan sobre el protocolo Los Datagramas se implementan sobre el protocolo UDP, con dos clases:UDP, con dos clases:

DatagramPacketDatagramPacket, contiene los datos, contiene los datos DatagramSocketDatagramSocket, es el mecanismo para enviar o , es el mecanismo para enviar o

recibir los recibir los DatagramPacketDatagramPacket..

Área de Ingeniería Área de Ingeniería TelemáticaTelemática

38

Universidad de SevillaUniversidad de Sevilla

Fundamentosde Telemática

MétodosMétodos

InetAddress getAddress()InetAddress getAddress() Devuelve la dir. de destino (para envíos)Devuelve la dir. de destino (para envíos)

int getPort()int getPort() Devuelve el número de puerto.Devuelve el número de puerto.

byte[] getData()byte[] getData() Devuelve el contenido del datagramaDevuelve el contenido del datagrama

int getLength()int getLength() Devuelve la longitud de los datos válidosDevuelve la longitud de los datos válidos