UT5. sockets en java
comunicación de una máquina cliente con el servidor
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
UT 5: sockets
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
1.Repaso
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
Al ejecutarlo comprobamos cómo el servidor funciona, pero solo es capaz de manejar un cliente en cada momento...
UT 5: sockets
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
1.Repaso
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
Idealmente un servidor debe ser multicliente, es decir, tratar con múltiples clientes simultáneamente. ¿Cómo...?
Servidor multihilo...
UT 5: sockets
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Servidor multihilo
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Servidor multihilo
eugeniaperez.es
UT 5: sockets
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Servidor multihilo
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Servidor multihilo
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
en java las INTERFAZ GRÁFICAs
De escritorio... Se crean con Swing.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/2117385/swing_gui.gif)
UT 5: sockets
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Servidor multihilo
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
REALIZA LA ACTIVIDAD 2 PÁG. 191
UT 5: sockets
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Manejo de URLs
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Manejo de URLs
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Manejo de URLs
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Manejo de URLs
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Manejo de URLs
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Manejo de URLs
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/eugenia_perez/images/970645/logo4.png)
Manejo de URLs
Text
eugeniaperez.es
![](https://s3.amazonaws.com/media-p.slid.es/uploads/263327/images/1700492/pasted-from-clipboard.png)
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,329