====== Ejercicio Protocolos de Comunicación ====== Estructura: * Clase Main * Socket a la Web de la Universidad * Seguir protocolo para obtener el index de la web * Mandamos mensaje de petición a la web de la universidad: * Primera línea: * Cabecera: * CRLF * Entity Body: Para mayor facilidad la clase se implementará como un Hilo ===== Obtener cabecera ===== Para obtener la cabecera usamos firefox en modo para desarrolladores, vamos a la pestaña de red y seleccionamos la URL de la Web en cuestión: {{ :dad:imagen_2023-10-19_112044893.png |}} Tras eso le damos a Sin Procesar y podremos ver el mensaje de petición: {{ :dad:imagen_2023-10-19_112356857.png |}} ===== Implementación ===== package protocolos; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; public class PeticionUniversidad extends Thread{ private BufferedReader br = null; public PeticionUniversidad(BufferedReader br) {//Constructor de lcase this.br = br; } public void run() {//Acción a realizar por el thread String linea = ""; try { while((linea = br.readLine())!=null) { System.out.println(linea); } }catch(IOException e) { System.out.println("Error de salida"); e.printStackTrace(); } } public static void main(String[] args) { try { Socket socket = new Socket("www.ucam.edu", 80 );//conectamos con un socket a la web System.out.println("[OK]"); //Implementamos buffers: BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter pw = new PrintWriter(new OutputStreamWriter(socket.getOutputStream())); PeticionUniversidad cliente = new PeticionUniversidad(br);//Instanciamos la clase cliente.start();//Iniciamos el Thread //A continuación implementamos el mensaje de solicitud: pw.println("GET / HTTP/1.1"); pw.flush(); pw.println("Host: www.ucam.edu");pw.flush(); pw.println("Connection: close");pw.flush(); pw.println();pw.flush(); //Nos va a devolver un Error 301 }catch (IOException e) { System.out.println("Error en el Main"); e.printStackTrace(); } } } ===== Salida que Obtendremos ===== {{ :dad:imagen_2023-10-19_115432686.png |}}