Tabla de Contenidos

Ejercicio Protocolos de Comunicación

Estructura:

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

PeticionUniversidad.java
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