IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

programme type serveur


Sujet :

Algorithmes et structures de données

  1. #1
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut programme type serveur
    bonjour

    j'ai un programme qui prend en entrée trois noms de fichier :
    1) un fichier contenant des données
    2) un fichier contenant une matrice (assez grosse)
    3) un fichier contenant un élément à rechercher dans les données

    la recherche de l'élément dans les données se fait par un algo compliqué qui se base sur la matrice que je lui donne. Dans la version actuelle, le programme lit et charge en mémoire les trois fichiers puis fait son travail. Les données et la matrice étant assez volumineuses, cela prend du temps. Dans l'optique de faire plusieurs recherches successives, je voudrais savoir s'il est possible et surtout comment on fait (car je pense que c'est possible ) de créer un prog qui fonctionnerait comme un serveur. C'est-à-dire qu'il chargerait une fois les données et la matrice et attendrait que je lui envoie une requête pour faire une recherche.

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par corentin59 Voir le message
    j'ai un programme qui prend en entrée trois noms de fichier :
    1) un fichier contenant des données
    2) un fichier contenant une matrice (assez grosse)
    3) un fichier contenant un élément à rechercher dans les données

    la recherche de l'élément dans les données se fait par un algo compliqué qui se base sur la matrice que je lui donne. Dans la version actuelle, le programme lit et charge en mémoire les trois fichiers puis fait son travail. Les données et la matrice étant assez volumineuses, cela prend du temps. Dans l'optique de faire plusieurs recherches successives, je voudrais savoir s'il est possible et surtout comment on fait (car je pense que c'est possible ) de créer un prog qui fonctionnerait comme un serveur. C'est-à-dire qu'il chargerait une fois les données et la matrice et attendrait que je lui envoie une requête pour faire une recherche.
    C'est pas une question de C, mais clairement de conception...

    C'est effectivement une bonne idée, mais c'est assez trivial. Il suffit que le programme charge les données en mémoire (initialisation) puis qu'il attende une requête pour faire le traitement (stdin, socket etc.)

    Pour que ce soit efficace, il faut évidemment qu'il y ait une taille mémoire physique conséquente pour éviter le swapping, et qu'il n'y ait pas d'autres programmes en cours sur la machine ...

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Tu peux aussi mapper tes fichiers dans la mémoire de ton process et ensuite te "promener" dans cette mémoire mappée. C'est beaucoup plus rapide.

    Si ton environnement est Microsoft, tu as les fonctions OpenFileMapping() et MapViewOfFile() pour cela.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    pour le "mapping", je ne connais pas, je vais donc creuser. Ceci dit, je travaille sous Linux.

    Pour ce qui est du stdin, j'ai un peu de mal à voir comment cela pourrait fonctionner. Mon prog C est piloté par un script. Ce que je voudrais, c'est que le script lance le prog (pour que tout se mette en mémoire) puis lance un grand nombre de requêtes, en récupérant à chaque fois la sortie standard (le prog y donne la réponse à la requête) et enfin stoppe le prog.

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par corentin59 Voir le message
    pour le "mapping", je ne connais pas, je vais donc creuser. Ceci dit, je travaille sous Linux.

    Pour ce qui est du stdin, j'ai un peu de mal à voir comment cela pourrait fonctionner. Mon prog C est piloté par un script. Ce que je voudrais, c'est que le script lance le prog (pour que tout se mette en mémoire) puis lance un grand nombre de requêtes, en récupérant à chaque fois la sortie standard (le prog y donne la réponse à la requête) et enfin stoppe le prog.
    Bah, j'ai dit stdin pour 'fichier'... Tu fais comme tu veux... Ceci dit, il serait préférable que le programme soit effectivement en attente d'une commande sur stdin ("traiter tel fichier", par exemple)... un mini interpréteur de commande peut aider...

    Tout cela reste de la conception et non du C...

Discussions similaires

  1. Aide sur un programme Client Serveur
    Par clubmed01 dans le forum Linux
    Réponses: 33
    Dernier message: 29/05/2012, 10h22
  2. Associer programme à type de fichier (registry)
    Par Belegkarnil dans le forum Windows XP
    Réponses: 2
    Dernier message: 31/08/2006, 08h49
  3. language de programmation de serveur vocal
    Par cool dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/02/2006, 21h17
  4. architecture d'un programme client/serveur asynchrone (win)
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 05/09/2003, 23h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo