Tema 16: Comunicaciones en Red
description
Transcript of Tema 16: Comunicaciones en Red
Á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