Está en la página 1de 11

Sistemas Distribuidos

2 Conexiones URL

Samuel Lujn Navarro


Escuela Militar de Ingenieria
slujan7e@yahoo.es
Febrero de 2014

Temario
Caracterizar herramientas de java para realizar
conexiones en la red.
Conexiones URL
URL y URLConnection
HttpURLConnection
URI
Cookies
TCP/IP Server Sockets
febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Conexiones entre
servidores y clientes

febrero de 2014

Samuel Lujn Navarro

Protocolos a nivel de aplicaciones


Internet Protocol (IP): Protocolo de enrutamiento de bajo nivel que divide los
datos en pequeos paquetes y los enva a una direccin a travs de una red, lo
que no garantiza la entrega de dichos paquetes al destino.
Transmission Control Protocol (TCP): Protocolo de alto nivel, maneja de forma
confiable paquetes IP, clasifica y retransmite los datos cuando sea necesario.
Protocolos de alto nivel tienen asignados un puerto. TCP/IP reserva los primeros
1024 puertos para protocolos especficos.
Puerto nmero 21 es para FTP; 23 es para Telnet; 25 es para el correo electrnico; 43
es para whois; 80 es para HTTP; 119 es para Netnews, etc.

HTTP: Protocolo que usan navegadores y servidores web para transferir pginas
de hipertexto e imgenes.
FTP (File Transfer Protocol). Permite transferir datos entre sistemas principales
diferentes, as como archivos entre dos sistemas externos de forma indirecta.
Telnet. Proporciona un mtodo estndar para que los dispositivos de terminal y
los procesos orientados a terminal intercambien informacin.
febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Uniform Resource Locator URL


URL. Proporciona forma razonablemente inteligible para identificar de forma nica
o tratar informacin en Internet.
URLs comparten el mismo formato bsico con cuatro componentes:
Protocolo: Separado del resto de la direcci[on por dos puntos ( : ). Ej.: HTTP, FTP,
Gopher y File.
Host name o Direccin IP: Delimitado por una doble // a la izquierda y por una / a la
derecha, opcionalmente dos puntos ( : )
Port: Parmetro opcional, el port predefinido el el 80.
Path del archivo: Generalmente archivos nombrados como index.html index.htm.
Se refiere al recurso del directorio.
Ejemplo: http://www.MHProfessional.com:80/index.htm

febrero de 2014

Samuel Lujn Navarro

Conexiones URL en Java


Java proporciona las clases necesarias para acceder a los servidores web.
Clases URL y URLConnection encapsulan complejidad de recuperacin de
informacin desde un sitio remoto.
URL url = new URL(urlString); Usted puede construir un objeto URL de una cadena:
import java.net.*;
class URLDemo {
public static void main(String args[]) throws
MalformedURLException {
URL hp = new URL("http://www.herbschildt.com/speaking.htm ");
System.out.println("Protocol: " + hp.getProtocol());
System.out.println("Port: " + hp.getPort());
System.out.println("Host: " + hp.getHost());
System.out.println("File: " + hp.getFile());
System.out.println("Ext:" + hp.toExternalForm());
}
}
febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Conexiones URL en Java


Java proporciona las clases necesarias para acceder a los servidores web.
Clases URL y URLConnection encapsulan complejidad de recuperacin de
informacin desde un sitio remoto.
URL url = new URL(urlString); Usted puede construir un objeto URL de una cadena:

febrero de 2014

Samuel Lujn Navarro

Clase URL
La clase URL tiene varios constructores, ellos lanzan una excepcin
MalformedURLException.
Tres de las formas ms usadas son:

URL(String urlSpecifier) throws MalformedURLException.


URL(String protocolName, String hostName, int port, String path)
throws MalformedURLException.
URL(String protocolName, String hostName, String path)
throws MalformedURLException

febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

URLConnection
URLConnection. Clase de propsito general para acceso a atributos de recursos
remotos.
Establecida una conexin, se puede inspeccionar propiedades del objeto remoto
antes de transporte a nivel local.
Atributos expuestos por especificacin de protocolo HTTP. Slo tiene sentido para
objetos URL que utilizan el protocolo HTTP.

febrero de 2014

Samuel Lujn Navarro

Mtodos de URLConnection

febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Mtodos de URLConnection

febrero de 2014

cont

Samuel Lujn Navarro

Ejemplo de uso de URLConnection


import java.net.*;
import java.io.*;
import java.util.Date;
class URLConnDemo {
public static void main(String args[]) throws Exception {
int c;
URL hp = new URL("http://www.internic.net");
URLConnection hpCon = hp.openConnection();
System.out.println("Date: " + new Date(hpCon.getDate()));
System.out.println("Content-Type: " +hpCon.getContentType());
System.out.println("Expires: " + hpCon.getExpiration());
System.out.println("Last-Modified: " +new Date(hpCon.getLastModified()));
int len = hpCon.getContentLength();
System.out.println("Content-Length: " + len);
.
.
.
febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Ejemplo de uso de URLConnection

cont

.
.
.
if (len > 0) {
System.out.println("=== Contenido ===");
InputStream input = hpCon.getInputStream();
int i = len;
while (((c = input.read()) != -1)) { // && (-i > 0)) {
System.out.print((char) c);
}
input.close();
} else {
System.out.println("No Content Available");
}
}
}

febrero de 2014

Samuel Lujn Navarro

HttpURLConnection
Es una subclase de URLConnection que provee soporte para conexiones HTTP.
Se puede obtener una HttpURLConnection llamando al mtodo openConnection
del objeto URL
Se debe realizar un casting del resultado a HttpURLConnection.
Establecida una conexin, se pueden usar los metodos heredados de
URLConnection adems de los prpios de la clase HttpURLConnection.

febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Mtodos adicionales de HttpURLConnection

febrero de 2014

Samuel Lujn Navarro

Ejemplo de uso de HttpURLConnection

cont

import java.net.*;
import java.io.*;
import java.util.*;
public class HttpURLDemo {
public static void main(String args[]) throws Exception {
URL hp = new URL("http://www.google.com");
HttpURLConnection hpCon = (HttpURLConnection) hp.openConnection();
// Despliega el m[etodo solicitado
System.out.println("El metodo solicitado es " + hpCon.getRequestMethod());
// Despliega el codigo de respuesta
System.out.println("El codigo de respuesta es " + hpCon.getResponseCode());
.
.
.
febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Ejemplo de uso de HttpURLConnection

cont

.
.
.
// Despliega el mensaje de respuesta
System.out.println("El mensaje de respuesta es " + hpCon.getResponseMessage());
// Obtiene la lista de campos del encabezado y un conjunto
Map<String, List<String>> hdrMap = hpCon.getHeaderFields();
Set<String> hdrField =hdrMap.keySet();
System.out.println("\nAqui esta el encabezado:");
//Despliega todas las llaves del encabezado y sus valores.
for (String k : hdrField) {
System.out.println("Clave: "+ k + "Valor: " + hdrMap.get(k));
}
}
}

febrero de 2014

Samuel Lujn Navarro

La clase URI
La clase URI encapsula un Uniform Resource Identifier (URI).
Las URI son similares a las URL. De hecho, las direcciones URL constituyen un
subconjunto de las URIs.
Una URI representa una forma estndar de identificar un recurso.
Una URL tambin se describe cmo acceder al recurso.

febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Cookies
El paquete java.net contiene clases e interfaces que ayudan a administrar las
cookies
Puede ser utilizado para crear una sesin con estado (a diferencia de las sesiones
HTTP sin estado).
Las clases son CookieHandler, CookieManager y HttpCookie.
Las interfaces son CookiePolicy y CookieStore.

febrero de 2014

Samuel Lujn Navarro

TCP/IP Server Sockets


Java tiene una clase Socket diferente que debe ser utilizado para la creacin de
aplicaciones servidor.
La clase ServerSocket se utiliza para crear servidores que escuchan programas
cliente locales o remotos que se conectan a ellos en los puertos publicados.
ServerSockets son muy diferentes de sockets normales. Cuando se crea un
ServerSocket, sta se registra en el sistema para las conexiones cliente.
Constructores de ServerSocket reflejan el nmero de puerto en el que acepta
conexiones y, opcionalmente, el tiempo que desea esperar en la cola.
La longitud de la cola indica al sistema el nmero de conexiones de cliente que
puede dejar pendiente antes de rechazar conexiones. El valor por defecto es 50.
Los constructores pueden lanzar una IOException.
ServerSocket tiene un mtodo accept(), que es una llamada de bloqueo que
esperar a un cliente para iniciar comunicaciones, retornando un socket normal
para la comunicacin con el cliente.
febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com

Tres constructores de Server Sockets

febrero de 2014

Samuel Lujn Navarro

febrero de 2014

Samuel Lujn Navarro

Printed with FinePrint trial version - purchase at www.fineprint.com