UT5. sockets en java

comunicación de una máquina cliente con el servidor

 

eugeniaperez.es

UT 5: sockets

1.Repaso

Text

eugeniaperez.es

Al ejecutarlo comprobamos cómo el servidor funciona, pero solo es capaz de manejar un cliente en cada momento...

UT 5: sockets

1.Repaso

Text

eugeniaperez.es

Idealmente un servidor debe ser multicliente, es decir, tratar con múltiples clientes simultáneamente. ¿Cómo...?

Servidor multihilo...

UT 5: sockets

Servidor multihilo

Text

eugeniaperez.es

La idea es la misma pero se trata de colocar la parte relativa al cliente (o al manejador del cliente del servidor) en una clase que soporte Threads de Java.

SERVIDOR MULTIHILO

Servidor multihilo

eugeniaperez.es

UT 5: sockets

Servidor multihilo

Text

eugeniaperez.es

SERVIDOR MULTIHILO CON INTERFAZ GRÁFICA

Mismo servidor pero en lugar de mostrar los mensajes por pantalla en el cliente, se incluye una aplicación de escritorio.

UT 5: sockets

Servidor multihilo

Text

eugeniaperez.es

en java las INTERFAZ GRÁFICAs

De escritorio... Se crean con Swing.

UT 5: sockets

Servidor multihilo

Text

eugeniaperez.es

REALIZA LA ACTIVIDAD 2 PÁG. 191

 

UT 5: sockets

Manejo de URLs

Text

eugeniaperez.es

Manejo de urlS para crear sockets

Socket client = new Socket(dir_server, PORT);

 

Para indicar la URL del servidor podríamos utilizar la clase de java.net URL.

UT 5: sockets

Manejo de URLs

Text

eugeniaperez.es

Manejo de urlS para crear sockets

 

 

URL absoluta:

 try {
            URL url = new URL("http://www.google.es");
      } catch (MalformedURLException ex) {
            Logger.getLogger(URLExample.class.getName()).log(Level.SEVERE, null, ex);
      }

En caso de que no sea posible construir la URL, se obtendrá una excepción de tipo MalformedURLException

UT 5: sockets

Manejo de URLs

Text

eugeniaperez.es

Manejo de urlS para crear sockets

 

 

o URLs relativas:

<a href="page1.html">Index</a>
<a href="page2.html">About</a>
URL url = new URL("http://www.google.es/");
URL index = new URL(url, "index.html");

UT 5: sockets

Manejo de URLs

Text

eugeniaperez.es

Manejo de urlS para crear sockets

 

 

URL admite varios constructores:

URL url2 = new URL("http","google.es","/pages/page1.html");
URL url3 = new URL("http", "google.es", 80, "/pages/page1.html");
URL url4 = new URL("http://google.es:80/pages/page1.html");

UT 5: sockets

Manejo de URLs

Text

eugeniaperez.es

Manejo de urlS para crear sockets

 

 

URL con caracteres especiales:

URL url5 = new URL("http://google.es/initial%20pages/hello%20world/");
URI uri = new URI("http","google.es","/initial pages/hello world/");
URL url6 = uri.toURL();

UT 5: sockets

Manejo de URLs

Text

eugeniaperez.es

Manejo de urlS para crear sockets

 

 

Gracias al objeto URL podemos obtener información:

URL url = new URL("http://www.google.es:80/wordpress/index.php?city=Pamplona&temperature=20#head");
System.out.println("URL visited: Displaying information:");
System.out.println("----------------------------------------");
System.out.println("protocol = " + url.getProtocol());
System.out.println("authority = " + url.getAuthority());
System.out.println("host = " + url.getHost());
System.out.println("port = " + url.getPort());
System.out.println("path = " + url.getPath());
System.out.println("query = " + url.getQuery());
System.out.println("file name = " + url.getFile());
System.out.println("ref = " + url.getRef());
            

UT 5: sockets

Manejo de URLs

Text

eugeniaperez.es

aplicación de la clase url

 

 

1. Creación de Socket:

Socket client = new Socket(url.getHost(), url.getPort());

2. Leyendo el HTML mediante Screenscraping:

public static String getHTMLContent(URL url) throws IOException {
        String htmlCode = "";
        BufferedReader in = new BufferedReader(
                new InputStreamReader(url.openStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            htmlCode += inputLine;
        }
        in.close();
        return htmlCode;
}

UT5. PSP Sockets III

By eugenia_perez

UT5. PSP Sockets III

  • 1,264