[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux-team] Client/serveur



Ton enonce me semble incomplet quant a la facon de resoudre le probleme !

soluce
ton serveur cree un named pipe "/tmp/serveur.PID"
les client ecrive dans le named leur pid
le serveur lit le pid du client,
fork -> 1 child,
le child cree 2 named pipe dans "/tmp/Rclient.PID_client" et
"/tmp/Wclient.PID_client" pour discuter avec le client. (les pipe  sont
unidirectionel, a la differance des socket)
Le client attend la creation de "/tmp/Wclient.PID_client" pour envoyer
sa requette au child serveur.
Lorsque le child a finit des servire le client il efface les 2 named pipe.
Si le child serveur n'a plus de nouvelle du client pendant 5 min,
il efface les 2 pipe et termine

ps tu es obliger de creer des named pipe pour chaque process,
paske 2 process peuvent pas lire dans le meme pipe, car alors
tu ne sait pas lequel a lu quoi !


Ca c'est la strategie, reste a utiliser correctement :

create : pour creer le named pipe
unlink : pour effacer
fork : pour creer un child
read et write ou fread et fwrite bien sure

dans cette stratgie, il n'y a pas besoin d'utiliser pipe(), ni dup()
=> c'est donc un execice stupide, ou un enonce incomplet ....

David Colson wrote:

> Salut ? tous,
>
> Mon professeur de UNIX nous ? donner un exercice ? faire. Quelqu’un pourrait-il me donner un petit coup de pouce pour le résoudre. Un exercice qui ne devrait pas poser de probl?me pour les experts. Je suis débutant en UNIX.
> Je ne sais pas par o? commencer pour faire les différents programmes, ni ce qu'il faut y mettre exactement.
>
> Enoncé du probl?me :
>
> - Ecrire un programme serveur (similaire au serveur FTP) et plusieurs programmes clients (3 clients au total).
> - Le 1er client ne peut faire uniquement qu’un GET (recevoir des fichiers)
> - Le 2?me client ne peut faire uniquement qu’un PUT (donner des fichiers)
> - Le 3?me client ne peut faire uniquement qu’un LS (avoir une liste de fichiers)
>
> - Le serveur et les clients sont sur la m?me machine (donc multi-user)
> - 7 programmes doivent ?tre conçus :  1 pour le serveur (programme qui tourne tous le temps),  1 pour chacun de ses 3 fils et 1 pour chacun des 3 clients.
> - Le client doit d’abord se logger (user + password)
> - Il faut utiliser des pipes entre serveur et clients et entre fils et clients.
> - Ces programmes sont écrits en C.
>
> Merci d’avance pour votre aide
>
> _____________________________________________________________________
> MonCourrier.com: service gratuit de courrier électronique.
> Vous aussi, ouvrez un compte maintenant: http://www.MonCourrier.com
> Envoyé par MonCourrier.com
> ---------
> This message was sent by Majordomo 1.94.3. Please report problems to
> manu@rtfm.be. If you want to be deleted from the list, send a mail to
> majordomo@rtfm.be with "unsubscribe linux-team" in the body.

--

        Spineux Alain

Romani ite domus.
======================================================================
  Spineux Alain                         E-MAIL : spineux@prm.ucl.ac.be
  INSTITUT STEVIN
  Catholic University of Louvain        FAX    : 32-10-472501
  PLACE DU LEVANT 2                     PHONE  : 32-10-472516
  B-1348 LOUVAIN-LA-NEUVE (BELGIUM)
=======================================================================


---------
This message was sent by Majordomo 1.94.3. Please report problems to
manu@rtfm.be. If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.