begin process at 2012 05 30 14:42:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Recherche programmeur C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recherche programmeur C

dimanche 29 janvier 2006 à 16:21:11 | Recherche programmeur C

samy7cav

Bonjour,
Voilà pour un sujet dans le cadre d'une formation en info, j'ai un projet à faire en C.
Si quelque pense pouvoir m'aider ou même répondre à ses différentes questions je suis prêt.
Un paiement est possible, contactez moi via MP

Le sujet :

Enoncé du projet

On considère une application client-serveur pour laquelle les processus clients et les processus serveurs s’exécutent sur une même machine.

Cette application permet de réserver des places pour un ensemble de spectacles.

Des processus clients remettent deux types de requêtes à destination du serveur de réservation :

- requête de consultation permettant de consulter le nombre de places restantes pour un spectacle donné.

- requête de réservation permettant de réserver n places pour un spectacle donné.

Le serveur de réservation est composé de deux processus :

- un processus serveur Consultation prend en compte les requêtes de consultation. Pour chacune d’elle, il renvoie le nombre de places disponibles pour le spectacle spécifié dans la requête.

- un processus serveur Réservation prend en compte les requêtes de réservation. Pour chacune d’elle, il créé un processus fils qui effectue la réservation si cela est possible. Dans le cas où la réservation a pu être faite, le processus fils renvoie au client un acquittement de réservation et sinon un message d’erreur.

Les informations concernant les spectacles sont stockées dans une table en mémoire centrale. Une entrée de la table concerne un spectacle et donne les informations suivantes : Intitulé du spectacle, nombre de places restantes, date de la représentation. Chaque spectacle est joué une seule fois.


Contraintes :

- les clients et les serveurs sont sur une même machine ;

- les processus fils du processus serveur Réservation recouvrent le code hérité du père par une code exécutable contenant les actions de réservation.


Travail demandé

- Choisissez les outils de communication qui vous paraissent les plus adaptés entre d’une part, les clients et les serveurs, d’autre part entre le processus Réservation et ses fils. Justifiez votre choix.

- Détaillez la structure des messages échangés entre les processus.

- Spécifiez une solution permettant de réaliser les actions décrites dans l’énoncé. Vous donnerez notamment les pseudos codes précis de chacun des processus suivants :

- le processus client ;

- le processus Réservation

- le processus fils du processus Réservation

- le processus Consultation

Facultatif

- Codez tout ou partie de l’application en C sous Linux.





dimanche 29 janvier 2006 à 17:10:48 | Re : Recherche programmeur C

platon179

Membre Club
Salut....

Je suppose que c'est a rendre pour dans deux heures et que tu paieras un allopass pour la totalité du projet réalisé.... Nan je veux dire faut pas déconner non plus, on est pas là pour faire le boulot des autres... Attaques ton projet, et si tu as un souci particulier, pose ta question, et on pourra te répondre
Bonne soirée @+


dimanche 29 janvier 2006 à 17:14:26 | Re : Recherche programmeur C

samy7cav

oui oui je suis deçus lol
Et c'est pas à rendre dans les 2h c'est 2 jours lol
Et c'est pas un allopass mais 30€ via paypal par exemple ...

dimanche 29 janvier 2006 à 17:15:17 | Re : Recherche programmeur C

Vale Erian

Membre Club
Le but c'est que tu fasse le projet pour te former en C, sinon ca sert à rien.

dimanche 29 janvier 2006 à 17:20:56 | Re : Recherche programmeur C

platon179

Membre Club

Très juste Vale Erian...
Et puis il y a encore quelque chose qu'on apprend très vite quand on fait une formation en info... Par exemple en IUT (comme moi :p)... On attend pas deux jours avant de rendre un projet avant de le commencer ! On se fait avoir une fois parce qu'on se dit c'est facile, deux fois parce que c'est pas compliqué, puis la troisième fois, on s'y met de suite et, comme par hasard, on termine dans les temps :)

@+

dimanche 29 janvier 2006 à 17:24:53 | Re : Recherche programmeur C

samy7cav

lol oui je suis bien ok ...
Mais bon ce sont des cours du soir ...donc la famille, le boulot etc... et paf le projet qui arrive dans les dents lol

Voilà ou j'en suis :

Communication la plus adaptée clients/serveur : Socket

Justification :

client/serveur : pas de relation entre les processus donc pas de connaissance de l'un pour l'autre d'un point de vue système. Donc utilisation du réseau même en loopback

Communication la plus adaptée serveur/fils : IPC

Justification :

serveur et proc fils : communication via l'ID du proc père et mémoire partagée entre les différents proc



Pseudo code client :

Client :

SOCKET      sSocket = null

STRING      SERVER_ADDRESS

INTEGER     SERVER_PORT

STRING      sRequest = null

STRING      sSpecName = null

DATE        sSpecDate = null

INTEGER     iAvailable = 0

INTEGER     iWished = 0

sSocket = Ouvrir_Socket(SERVER_ADDRESS, SERVER_PORT)

SI sSocket == null ALORS

      Affiche « Impossible de se connecter au serveur » + SERVER_ADDRESS + « : » + SERVER_PORT

      Exit(-1)

FSI

 #MENU DE SELECTION POUR FAIRE LA REQUETE#

SI sRequest == « Consult » ALORS

      REPONSE = sSocket.Envoi(« Consult »)

      TANT QUE REPONSE != null FAIRE

            Affiche « Nom spectacle : » + REPONSE.sSpecName + « Date : »  + REPONSE.sSpecDate + «  Place dispo : » +  REPONSE.iAvailable

      FIN TANT QUE

SINON

      REPONSE = sSocket.Envoi(« sSpecName|sSpecDate|iWished ») ;

      SI REPONSE == -1 ALORS

            Affiche « IMPOSSIBLE DE RESERVE LE NOMBRE DE PLACE DESIRE »

      SINON

            Affiche « reservation effectuée »

      FSI

FSI





dimanche 29 janvier 2006 à 17:33:47 | Re : Recherche programmeur C

platon179

Membre Club
Re....
Autant pour moi, je croyais que tu suivais une formation continue....

Donc ton pseudo-code pour le client m'a pas l'air mal, j'ai juste l'impression qu'il y a un souci dans ta requete de consultation...
Je pense que le serveur devrait retourner par exemple d'abord le nombre de résultats, puis la liste des résultats... Ce que tu as fait est a mon avis correct pour une base de données, mais ne fonctionnerait pas pour les sockets... Donc ca serait plutôt :

NBREPONSE = sSocket.Envoi("Consult");
POUR i de 0 à NBREPONSE
   REPONSE = sSocket.Reception();
   AFFICHE [...]
FPOUR

@+
dimanche 29 janvier 2006 à 17:52:45 | Re : Recherche programmeur C

samy7cav

ok je vois ...
Je vais m'attaquer au serveur ^^

dimanche 29 janvier 2006 à 18:06:08 | Re : Recherche programmeur C

samy7cav

voilà une idée :

Serveur :

SOCKET      sSocket = null

STRING      SERVER_ADDRESS

INTEGER     SERVER_PORT

STRING      sRequest = null

STRING      sSpecName = null

DATE        sSpecDate = null

INTEGER     iAvailable = 0

INTEGER     iWished = 0

sSocket = Ouvrir_Socket(SERVER_ADDRESS, SERVER_PORT)

SI sSocket == null ALORS

      Affiche « Impossible de se connecter » + SERVER_ADDRESS + « : » + SERVER_PORT

      Exit(-1)

FSI

WHILE(TRUE)

Lance_Proc_Fils(sSocket.read())

 #Lance_Proc_Fils #


IF sSocket.REQUEST.equals("consult") THEN

FOR i = 0 TO ArraySpec.length() - 1

REPONSE = REPONSE + "\n" + #les infos#

NEXT

sSocket.sendResponse(REPONSE)

SINON

traitement_reservation

FSI



dimanche 29 janvier 2006 à 18:31:11 | Re : Recherche programmeur C

samy7cav

Par contre vous avez une idée pour cette question ?
- Détaillez la structure des messages échangés entre les processus

Moi je pense simplement à des tableaux contenant les valeurs :

  réservation :


client : nom|nb_places


serveur : nb_places réservées || -1 si impossible de réserver








1 2

Cette discussion est classée dans : serveur, processus, places, spectacle, réservation


Répondre à ce message

Sujets en rapport avec ce message

processus sous linux [g++] [ par satanik_mike ] Bonjour,Je suis en train de d?velopper un serveur POP, SMTP en C++ sous linux, mais je bloque sur une petit probl?me d'ex?cution.J'ai fait un ex?cutbl Interface utilisateur ... [ par LocalStone ] Salut à tous, J'ai encore besoin de vos services ! J'ai un petit soucis que je ne comprends pas trop. Pour l'école, je dois faire un programme que l'o Construire un réseau de processus [ par gravedygger ] Bonjour à tous, N'ayant trouver de réponse nulle part je compte sur vous pour me donner des piste pour un TP de réseau dont voici le sujet. Mes questi Problème Socket en C sous Linux [ par vinkala ] Je suis en train de faire un projet de Socket en C sous Linux comme la suite: On demande de réaliser un programme qui permet de construire un réseau d Client/Serveur avec transfert de vidéo [ par Got8z ] Bonjour, Actuellement étudiant en informatique je suis en train de développer un client/serveur afin de pouvoir transférer des vidéos (.avi) d'un ord


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales