Servidor y administrador gopher

Solo disponible en BuenasTareas
  • Páginas : 17 (4214 palabras )
  • Descarga(s) : 4
  • Publicado : 20 de noviembre de 2009
Leer documento completo
Vista previa del texto
Programación de
Aplicaciones
Distribuidas

1er Proyecto:
Servidor y Administrador GOPHER

Antonio Marín Abengózar 3º Sistemas
ÍNDICE
GOPHER:
1. ¿Qué es Gopher?
2. Implementación
3. Archivos
4. Métodos
5. Instalación

ADMINISTRACIÓN:
6. Aplicación AdmGopher
7. Implementación
8. Archivos
9. Métodos
10. Instalación
11. Modode Uso
12. Código Fuente

GOPHER:

1. ¿Qué es Gopher?

Gopher es un servicio basado en el modelo cliente-servidor, sustentado mediante TCP/IP.
Este servicio ofrece la posibilidad de acceder y mantener un sistema de compartición de archivos distribuidos al que, mediante al correspondiente cliente gopher, se tiene acceso de una forma totalmente transparente, como si se tratasedel un sistema de archivos local. (Con ciertas reservas.)

Para una especificación más detallada del los pormenores de la especificación léase la RFC 1436

2. Implementación.

La implementación realizada se ciñe estrictamente al la especificación de la RFC. Sólo se ha incorporado la posibilidad de servir archivos de texto, archivos binarios (ejecutables, archivos comprimidos, desonido, imágenes…); mas se ha dejado abierta la posibilidad de incorporar otros tipos de archivos sin tener más que añadir la nueva funcionalidad; nuevo tipo de archivo, con su numero correspondiente, y la función que maneje dichas peticiones.
Para el servidor se ha utilizado un de servidor TCP con Socket pasivo que permite atender diversas peticiones sin que esto implique la creación de nuevoshilos y sin que suponga un claro retardo en la respuesta. Se ha elegido este servidor dadas las características del servicio ya que en cada petición sólo se realiza una única comunicación; lo que evita, ante la elección de no crear distintos hilos, que las peticiones encoladas sufran gran demora.

La “configuración” se ha implementado de modo que al servidor se le debe indicar que archivocontiene el índice principal y cual es el archivo de contenidos.

ARCHIVO DE CONTENIDOS.
Este archivo se utiliza para realizar la traducción entre la cadena mágica que identifica a un archivo o directorio alojado en el servidor gopher con su verdadero nombre. Permite llevar un control del contenido de toda la máquina.

FORMATO.
El formato de cada línea del archivo es el siguiente(los espacios son tabulaciones):
CadenaMágica PathCompleto DirectorioAlQuePertenece TipoDeArchivo\r\n

Pasaremos ahora a explicar más a fondo la implementación.

3. Archivos.
El programa servidor requiere de los siguientes archivos:

· Gopher.c
· SocketPasivoTCP.c
· SocketPasivoTCP.h
· notiferror.c
· notiferror.h

Se detallarán a continuación los distintosmétodos y el trabajo que realizan.

4. Métodos

Como los archivos notiferror.c y SocketPasivoTCP.c y sus correspondientes archivos de cabecera son conocidos, pasaremos a explicar el Gopher.c:

int main(int argc, char *argv[]).

En el método main se declaran las estructuras necesarias para el servidor pasivo (conjuntos de descriptores de lectura, activos, socket maestro,estructura de direcciones, etc). Aquí es dónde se crea el socket y se esperan las peticiones y se invoca para gestionarlas al método gopher indicándole el descriptor del socket por el que debe comunicarse.

int gopher(int fd)

Se encarga de leer la petición del descriptor fd y enviársela al método procesar.

int procesar(char *buf, int fd,int tam)

Comprueba el tipo de petición realizado(indice principal, archivo de texto, binario,…) y procede según sea oportuno. Comprobando antes si la petición realizada es correcta.
El método contiene un switch el cual habría que modificar en el caso de querer añadir nuevos tipos de archivos.

int buscar(const char *archivo, char *magical, int *t)

Se encarga de comprobar si la cadena solicitada pertenece a algún archivo.

int...
tracking img