2010-05-11 4 views
0

Actuellement, je travaille sur un système serveur-client qui sera l'épine dorsale de mon application. Je dois trouver le meilleur moyen d'envoyer des requêtes et de les gérer côté serveur.Comment gérer les requêtes serveur-client

Le côté serveur doit être en mesure de traiter les demandes comme celle-ci:

getPortfolio -i 2 -d tous

Dans un ancien projet, j'ai décidé d'envoyer cette demande sous forme de chaîne et l'application serveur a dû rechercher la première partie de la chaîne ("getPortfolio"). Ensuite, l'application serveur a dû trouver la méthode correcte dans une carte qui liait les méthodes avec la première partie de la chaîne ("getPortfolio"). La deuxième partie ("-i 2 -d all") a été passée en paramètre et la méthode elle-même a dû gérer cette chaîne/paramètre.

Je doute que c'est la meilleure solution pour gérer de nombreuses demandes différentes.

Mfg Layne

+0

Il est difficile de comprendre exactement ce que vous demandez. Avez-vous un problème concernant les sockets ou concernant l'algorithme d'analyse générale? Ce sont (AFAIK) deux concepts différents. – ereOn

Répondre

0

Pour moi, il semble que vous avoir deux questions différentes.

Pour la partie socket, je vous suggère d'utiliser Beej's guide to socket programming si vous voulez avoir un contrôle total sur ce que vous faites. Si vous ne voulez pas/n'avez pas le temps de traiter vous-même cette partie, vous pouvez également utiliser une bibliothèque de socket C++. Il y en a plein; J'ai seulement utilisé this one jusqu'à présent, mais d'autres pourraient être aussi bons (ou même mieux). En ce qui concerne votre algorithme d'analyse syntaxique, vous pouvez tout d'abord noter tout ce qui concerne le format du message, vous aurez donc une directive stricte à suivre. Ensuite, traitez étape par étape:

D'abord, extrayez le "premier mot" et gardez simplement les paramètres suivants dans une liste. Vérifiez si le premier mot est valide et s'il est connu. Si le "premier mot" ne correspond à aucune des fonctions existantes prédéfinies, ignorez simplement le message (et signalez l'erreur à l'application cliente).

Une fois que vous avez la fonction correspondante, appelez-la simplement en passant les autres paramètres. De cette façon, chaque fonction effectuera une tâche spécifique et votre code sera divisé de manière élégante.

Malheureusement, il m'est difficile d'être plus explicite car nous manquons de détails ici.

Questions connexes