PRÁCTICA OPTATIVA 1: SERVIDOR WEB MULTITHREAD - NET16
PRÁCTICA OPTATIVA 1: SERVIDOR WEB MULTITHREAD - NET16
PRÁCTICA OPTATIVA 1: SERVIDOR WEB MULTITHREAD - NET16
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 -