Programmation C++

Transcription

Programmation C++
Programmation C++
TP transmission socket MFC
Préliminaires
Tout d’abord, récupérer les sources des minis client et serveur de TP utilisation socket 1. Les compiler et les essayer. Ces
programmes sont réduits au strict minimum dans un souci de clarté.
Modifications à apporter :
Dans un premier temps, le serveur doit mettre l’écoute en attente lorsqu’un client se connecte, puis la redémarrer
lorsqu’il se déconnecte. Le client pourrait aussi être connecté seulement durant son émission.
Chaque fenêtre de message reçu du serveur doit avoir pour titre les adresses et ports du client et du serveur (pour
le socket connecté au client durant l’échange).
Dans un deuxième temps, le serveur doit maintenir l’écoute en permanence, et lancer à chaque nouvelle
connexion un thread pour le nouveau client.
Enfin, le serveur doit recevoir le message complet, quelle que soit sa taille, et non plus être limité à 63 octets
(plus le 0).
Messagerie simple
Pour commencer, créer une application client-serveur d’envoi et réception de messages, utilisant une interface Dialog
Based de AppWizard.
La partie cliente doit comporter deux zones de saisie et deux boutons :
Un couple zone+bouton permettant de spécifier une machine (nom ou adresse IP) et de s’y
connecter/déconnecter,
Un couple zone+bouton permettant, seulement lorsque la connexion est établie, d’envoyer des messages.
Le serveur doit écouter sur le port 4000 et afficher les messages dans des Message Box.
Cette application sera réalisée avec des sockets de type CAsyncSocket.
Une fois terminée, vous pourrez tester son point faible en envoyant très rapidement plusieurs fois le même message.
Expliquer alors ce qui se passe et proposer une (ou plusieurs) solution.
Transfert de fichiers
Créer une application de transfert de fichiers basée sur l’emploi des CSockets.
Cette fois le client possédera :
un couple zone de saisie + bouton de connexion/déconnexion,
un trio 2 zones de saisie pour spécifier le fichier à transmettre et le fichier destination et un bouton pour lancer la
transmission
Le serveur devra recevoir le fichier et le stocker au bon endroit. Il pourra notifier la réussite de l’opération en affichant à
la fin une description complète dans une Message Box. Il écoutera initialement sur le port 4000.
Messagerie plus complète
Enfin convertir la première application de messagerie en utilisant des sockets CSocket et la sérialisation.
Cette fois, le client enverra un couple, sérialisé, de chaînes :
le nom de la personne émettrice (récupéré avec une zone de saisie supplémentaire),
et le message limité à 50 caractères.
Le serveur devra non plus afficher des Message Box, mais lister les messages dans une fenêtre List Control. Les couples
nom + messages seront alors répartis sur deux colonnes :
la première pour les noms,
la seconde pour les messages.
Une troisième colonne spécifiera l’adresse IP de provenance (récupérée par programme). Une quatrième pourra spécifier
l’heure…
#njc Lycée « la Briquerie »
Programmation C++ socket
& page 1/1