Passons maintenant en revue les points à noter concernant ce projet.
La fonction de hachage qui renvoie le numéro de nœud pour une valeur clé k.
La fonction de hachage peut être aussi simple que k mod n, où n est le nombre total de nœuds dans la topologie
en anneau.
Si votre numéro de nœud dans la topologie en anneau commence par zéro, vous pouvez omettre le plus un dans cette fonction
de hachage.
Sinon, il suffit d'ajouter un plus un à la définition de la fonction de hachage.
Chaque nœud de l'anneau.
La topologie est un serveur TCP et un serveur UDP, ainsi qu'un client TCP et un client UDP.
Cela signifie que chaque nœud de votre topologie en anneau joue quatre rôles en même
temps.
Il s'agit du serveur TCP, du serveur UDP ainsi que du client TCP et du client UDP.
Le client est tout processus qui initie la communication.
Ainsi, comme je l'ai expliqué lors de la discussion du pseudocode, vous devez ouvrir un socket maître TCP, un socket UDP et les surveiller tous
les deux dans l'appel système sélectionné.
En outre, vos nœuds doivent également être en mesure d'accepter les demandes d'accès des utilisateurs à la console, qui agit en tant que client avec un
descripteur de fichier de communication égal à zéro.
Gardez donc toujours zéro comme membre de votre jeu de lecture et surveillez le descripteur de fichier zéro dans l'appel système
sélectionné.
Notez que vous devez écrire exactement un fichier C et non pas autant de programmes C que le nombre de nœuds dans la
topologie.
J'ai remarqué que les étudiants sont désorientés et pensent qu'ils doivent écrire autant de programmes C que
le nombre de nœuds dans la topologie.
Non, vous devez écrire un seul programme C et ce programme C particulier représente en fait un nœud générique
de la topologie de l'anneau.
Vous devez fournir des arguments de ligne de commande lors de l'exécution de votre projet.
Ces arguments de ligne de commande définiront que le processus que vous venez de lancer représente en fait quel nœud
de la topologie de l'anneau.
Nous avons déjà parlé des arguments de ligne de commande que vous devez passer dès le début.
Bonne chance les gars.
Prenez le temps de comprendre et de concevoir votre application.
Prenez vos propres hypothèses lorsque c'est nécessaire.
Par exemple, remplacer la valeur de X pour une demande de duplication de x.
Cela signifie simplement qu'il est possible que l'utilisateur ait émis la demande plus tôt, par exemple
22 et 35.
C'est vrai ?
Un peu plus tard, l'utilisateur émet à nouveau la demande 20 à 45.
C'est vrai.
Donc plus tôt pour K est égal à 22.
La valeur de X était de 35, enregistrée dans la table de hachage d'un nœud de la topologie en anneau.
Là encore, si l'utilisateur émet une demande put pour la même clé mais avec une valeur x différente,
vous êtes libre de remplacer la valeur x dans la table de hachage du nœud qui stocke les valeurs précédentes
de k et x.
J'ai donc une solution approximative pour ce projet.
Vous pouvez télécharger la solution ici pour vous faire une idée de la mise en œuvre de ce projet, mais
je vous encourage à mettre en œuvre ce projet par vous-même sans consulter le code source.
Mais si vous êtes bloqué ou si vous n'avez pas d'idée sur la façon d'avancer, vous pouvez télécharger ce code
source et le parcourir si possible pour voir comment vous allez mettre en œuvre votre solution.