08.05.2013 Views

PRÁCTICA OPTATIVA 1: SERVIDOR WEB MULTITHREAD - NET16

PRÁCTICA OPTATIVA 1: SERVIDOR WEB MULTITHREAD - NET16

PRÁCTICA OPTATIVA 1: SERVIDOR WEB MULTITHREAD - NET16

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Práctica 1: Introducción a Wireshark Redes de Ordenadores<br />

Para procesar el mensaje hay que obtener acceso a los streams de entrada y salida del socket, hay que poner<br />

filtros al stream de entrada para poder leer correctamente la petición pero no en el de salida, ya que<br />

escribiremos cadenas de bytes directamente.<br />

Código 5: streams de entrada y salida<br />

Ahora estamos preparados para obtener la petición del cliente leyendo del socket, para ello usaremos el<br />

método readLine() que lee caracteres hasta encontrar un fin de línea. Deberás leer e imprimir todas las líneas<br />

de la petición.<br />

Finalmente recuerda que tanto los streams como el socket deben ser cerrados una vez que termina el proceso.<br />

PARTE 2<br />

private void processRequest() throws Exception {<br />

// Get a reference to the socket's input and output<br />

// streams.<br />

InputStream is = ?;<br />

DataOutputStream os = ?;<br />

}<br />

// Set up input stream filters.<br />

?<br />

BufferedReader br = ?;<br />

. . .<br />

// Close streams and socket.<br />

os.close();<br />

br.close();<br />

socket.close();<br />

Código 6: cierre de streams y sockets<br />

En esta parte habrá que procesar la petición HTTP para saber que fichero se está pidiendo, posteriormente<br />

construir la respuesta y enviarla. En este caso solo vamos a considerar las peticiones GET y ignoraremos el tipo<br />

de petición (HEAD o POST).<br />

Las respuestas HTTP tienen tres partes, el estatus, la cabecera y el cuerpo. El estatus y las cabeceras van<br />

seguidas de la secuencia CRLF. En caso de que el fichero pedido no exista el estatus debe ser 404 Not Found e<br />

incluir un mensaje de error en el cuerpo.<br />

- 4 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!