Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


dad:ejercicio_protocolos

¡Esta es una revisión vieja del documento!


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:

Tras eso le damos a Sin Procesar y podremos ver el mensaje de petición:

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();
		}
		
		
		
		

		
	}
}

dad/ejercicio_protocolos.1697709183.txt.gz · Última modificación: 2023/10/19 09:53 por thejuanvisu