PROFDINFO.COM

Votre enseignant d'informatique en ligne

Utilisation d'une dll externe

Utiliser une librairie

Utiliser une librairie est pratiquement aussi facile que d'en produire une à partir de code déjà créé. Il suffit de cliquer avec le bouton de droite sur "References" dans l'explorateur de solutions. On choisira ensuite "Ajouter une référence". Dans la fenêtre qui s'ouvre, on choisit "Parcourir", puis on va trouver le fichier .dll en question. Ceci doit être fait même si le fichier se trouve dans le même répertoire que l'exécutable, ou n'importe où dans le répertoire du projet - en effet, la référence ne se fait pas automatiquement.

Il est souvent fort pratique de rajouter une ligne using avec l'espace de nom utilisé dans la librairie, pour simplifier notre code.

Votre travail pour cette semaine

Vous allez recevoir une dll compilée, sans avoir accès au code. Cette dll aura été produite par une autre équipe suite au laboratoire précédent. Vous devrez l'utiliser pour créer un programme de serveur et un programme de client. Votre serveur doit simplement utiliser un thread pour attendre une connexion, puis l'accepter. Une fois la connexion acceptée, le serveur lit dans le socket et vérifie ce qu'il reçoit. Selon le message reçu, il enverra la réponse appropriée dans le socket. Après coup, il continuera à attendre le message suivant.

Le client, de son côté, doit se connecter au serveur (on s'attend à ce que vous deviez lui passer l'adresse et le port utilisé par le serveur, mais vous pourriez être surpris), puis proposer un menu à l'usager. L'usager choisit quelque chose dans le menu, ce qui pousse le client à envoyer un message correspondant au serveur, puis à afficher la réponse qu'il en reçoit. Le menu est ensuite réaffiché, jusqu'à ce que l'usager choisisse de quitter, ce qui doit mettre fin à la connexion le plus proprement possible.

Les choix possibles pour le menu et pour la communication entre les parties sont:

 

Choix de menu Message envoyé par le client Réponse envoyée par le serveur
Date "Quel jour on est?" La date courante (prise sur l'ordinateur)
Heure "Y'est quelle heure?" L'heure courante (prise sur l'ordinateur)
Quitter [Aucun, ferme la connexion] [Aucun, détecte la fermeture de la connexion et termine]
Tout autre choix (invalide) entré par l'usager "Autre choix" "Choix invalide"

Évidemment, les guillemets ne sont là qu'à titre indicatif et ne font pas partie des messages.

Vous devez absolument utiliser la classe fournie dans la dll dans le serveur et dans le client - référez-vous à la documentation (normalement, également fournie) pour apprendre comment. Vous ne devez pas manipuler de Socket externe à cette classe, ni non plus utiliser tout objet provenant de l'espace de nom System.Net et System.Net.Sockets (à moins que ce soit un objet interne à la classe de la dll).

Si vous trouvez des fautes dans la documentation (je parle de fautes de cohérence, pas de fautes d'orthographe), des bugs non documentés dans la dll, ou quelconque non respect des spécifications, vous devrez vous arranger pour faire fonctionner vos programmes quand même, mais dans les limites de la dll. Comme vous ne pouvez pas utiliser d'autres objets de communication, si la dll ne vous permet pas de faire certains trucs, tant pis. Vous devrez alors indiquer en commentaires les lacunes de la dll et vous ne serez pas pénalisé pour autant.

Vous pouvez faire ce travail en équipe de deux (je vous conseille de garder les équipes de la semaine passée pour conserver le même nombre de travaux remis).

La remise

Vous devrez remettre par courriel à votre charmant professeur les fichiers .cs contenant votre code de client et de serveur. Ne faites pas de copier/coller de texte. Votre courriel doit me parvenir au plus tard mercredi le 21 octobre à 8h55.

Et maintenant: libraires, à vos claviers!