Programa Cliente / Servidor Manual Técnico

Páginas: 11 (2546 palabras) Publicado: 6 de agosto de 2011
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA

FACULTAD DE CIENCIAS DE LA COMPUTACION

Programa Cliente / Servidor
Manual Técnico

Proyecto
Programación de Sistemas

Profesora
M.C. Hilda Castillo Zacatelco

PRESENTA
Oscar Eduardo Romero Meléndez

Mayo 2008

Problema

El proyecto consiste en la creación de un programa cliente y un servidor. El programa servidor se encargaráde recibir órdenes por parte del cliente, las órdenes serán:
1. Enviar documento
2. Obtener documento
3. Listar documentos
4. Eliminar documentos
5. Revisar historial
En la primera opción, el cliente le enviará un archivo al servidor y este lo clasificará de acuerdo a su extensión. Las categorías son: texto (.txt), programas (.c), imágenes (.jpg, .bmp, .gif, etc.), otros (lasdemás extensiones). Cuando el servidor lea el nombre del archivo, lo almacenará en una carpeta que llevará el nombre de la categoría. Además de almacenar el archivo en la carpeta correspondiente, el programa deberá llevar un registro acerca del historial de la conexión, esto es, el IP de la máquina que se conectó, el nombre del usuario, y toda la información referente al archivo o archivos que seenviaron incluyendo fecha y hora. Para obtener esta información no se deberá consultar al usuario directamente, sino que se deberá obtener con llamadas al sistema y luego enviarlas al servidor para que las registre.
La comunicación entre máquinas deberá realizarse con sockets, y el servidor deberá ser construido con un proceso principal y mínimo cuatro procesos secundarios los cuales se encargaránde realizar sus tareas correspondientes de acuerdo a la categoría que les toque administrar. Para comunicar el proceso principal con los secundarios se deberán utilizar técnicas como tuberías o cola de mensajes. Ademas la información deberá ser persistente, esto es, aún cuando el servidor haya sido finalizado, la información (el registro) se almacenará en un archivo; cuando el servidor serinicie, leerá la información del archivo y la subirá a memoria.

Soluciones

Para solucionar el problema de establecer la una comunicación entre procesos de computadoras diferentes se utilizan 5 programas: servidor.c, cliente.c, texto.c, programas.c, magenes.c y otros.c. El programa servidor y el cliente serán ejecutados en diferenres computadoras y serán los procesos que harán la comunicación. Losprogramas texto.c, imágenes.c, programas.c y otros.c estarán junto con el programa y servidor y se comunicarán a través de una cola de mensajes (ya que están en la misma computadora).

Primero veamos la solución de establecer la comunicación entre el cliente y servidor, para esto se utiliza una conexión orientada a la conexión, o sea sockets de flujo de la familia AF_INET, necesitamos lassiguientes librerías para su funcionamiento (tanto en el programa cliente como en el servidor):

#include <netinet/in.h>
#include <sys/socket.h>
#include <netdb.h>

En el programa servidor y cliente se definen las siguientes constantes:

#define PUERTO 3500
#define TBUF 2048
#define MSGSIZE 1024
#define LEN_ARC 100
#define LEN_TIME 50

PUERTO es elnumero de puerto a través del cual se conectará el servidor y el cliente, las demás constantes son solo los valores máximos que tendrán ciertos arreglos.

En el programa servidor se declaran dos estructuras como las que siguen:

struct sockaddr_in servidor;
struct sockaddr_in cliente;

Este tipo de structuras son de tipo sockaddr pero exclusivas para internet, la primera estructura seutiliza para asociar el socket a un puerto (llamada bind() ) y la segunda para aceptar la conexión con el cliente ( llamada accept() ).

A continuación se llena primera estructura de la siguiente forma:.

servidor.sin_family = AF_INET;
servidor.sin_addr.s_addr = INADDR_ANY;
servidor.sin_port = htons(PUERTO);
bzero( &(servidor.sin_zero), 8 );

La primera línea indica que la familia...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • PROGRAMAS CLIENTE SERVIDOR
  • Cliente Servidor
  • Cliente Servidor
  • CLIENTE SERVIDOR
  • Cliente-Servidor
  • Cliente-servidor
  • Cliente servidor
  • Cliente servidor

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS