Servidor web multihilo

Solo disponible en BuenasTareas
  • Páginas : 11 (2607 palabras )
  • Descarga(s) : 0
  • Publicado : 22 de agosto de 2012
Leer documento completo
Vista previa del texto
Programación Tarea 1: Creación de un servidor web multi-hilo

En esta práctica vamos a desarrollar un servidor Web en dos pasos. Al final, se han construido un servidor Web multi-hilo que es capaz de procesamiento de solicitudes de servicios múltiples simultáneo en paralelo. Usted debe ser capaz de demostrar que el servidor Web es capaz de entregar su página de inicio a un navegador Web.Vamos a aplicar la versión 1.0 de HTTP, como se define en el marco de cooperación regional de 1945, donde por separado las peticiones HTTP se envían para cada componente de la página Web. El servidor será capaz de manejar la petición de servicios múltiples simultáneos en paralelo. Esto significa que el servidor Web es multi-hilo. En el hilo principal, el servidor escucha en un puerto fijo. Cuandorecibe una solicitud de conexión TCP, se establece una conexión TCP a través de otro puerto y los servicios de la solicitud en un subproceso independiente. Para simplificar esta tarea de programación, vamos a desarrollar el código en dos etapas. En la primera etapa, usted lo recibe. Después de este programa se ejecuta correctamente, se le agrega el código necesario para generar una respuestaadecuada.

Como que está desarrollando el código, puede probar el servidor desde un navegador Web. Pero recordará que usted ya no sirve a través del puerto estándar de 80, por lo que deberá especificar el número de puerto en el URL que usted da a su navegador. Por ejemplo, si el nombre de su máquina es host.someschool.edu, su servidor está escuchando en el puerto 6789, y que desea recuperar el archivoindex.html, a continuación, debe especificar el siguiente URL en el navegador: http://nombre. somessochool.edu: 6789/index.html.

If you omit ":6789", the browser will assume port 80 which most likely will not have a server listening on it.

Cuando el servidor encuentra un error, envía un mensaje de respuesta con la correspondiente fuente HTML para que la información de error se muestre en laventana del navegador

Servidor Web en Java: Parte A

En los pasos siguientes, vamos a pasar por el código de la primera implementación de nuestro servidor web. Donde quiera que vea "?", tendrá que proporcionar un detalle que falta.

Nuestra primera aplicación del servidor Web se multi-hilo, en la tramitación de cada solicitud entrante se llevará a cabo dentro de un subproceso independientede la ejecución. Esto permite que el servidor al servicio de varios clientes al mismo tiempo, o para realizar transferencias de archivos múltiples en un único cliente en paralelo. Cuando se crea un nuevo hilo de ejecución, tenemos que pasar al constructor del hilo de una instancia de la clase venido para que implemente la interfaz Runnable. esta es la razón por la que se define una clase separadallamada HttpRequest. La estructura del servidor web se muestra a continuación:

Import java.oi.*;
Import java.net.*;
Import java.util.*;

Public final class WebServer
{
Public static void main (String arvg[]) throws Exception
{
……………
}
}

Final class HttpRequest Implements Runnable
{
………………
}

Normally, web servers process service requests that they receive throughwell-know port number 80. You can choose any port higher than 1024, but remember to use the same port number when making requests to your Web server your browser.

Public static void main (String arvg[]) throws Exception
{
// set the port number.
Int port= 6789;

…………….
}

Next, we open a socket and wait for a TCP connection request. Because we will be servicing request messages indefinitely,we place the listen operation inside of an infinite loop. This means we will have to terminate the web server by pressing ^C on the keyboard.

//Establish the listen socket.
???????????

//Process HTTP service request in an infinite loop.
While(true)
{
//Listen for a TCP connection request.
?????
………….
}

When a connection request is received, we create an HttpRequest object,...
tracking img