Bonjour
J'ai réalisé un petit client-serveur avec Indy qui fonctionne plutôt bien. J'utilise bien évidemment les TIdTCPCLient et TIdTCPServer. J'ai mis en place des CommandHandler côté serveur : lorsque le client envoie une commande, le serveur lance le CommandHandler et accuse réception de la commande au client.
Je sais comment envoyer un fichier du client vers le serveur, en utilisant ceci :
Et j'arrive réceptionner le fichier côté serveur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 OpenWriteBuffer; WriteStream(memstream); CloseWriteBuffer;
Maintenant le problème : j'aimerais mettre en place un CommandHandler qui envoie un fichier au client.
En gros le client dit : "je veux un fichier"
Le serveur receptionne le message et remarque que c'est un CommandHandler, il lance la fonction OnCommand définie pour ce CommandHandler. Et cette fonction envoie un fichier au client.
Mais voilà, le composant TIdTCPServer ne possède pas les fontions OpenWriteBuffer, WriteStream, CloseWriteBuffer.
Il m'est venu à l'idée de rajouter un composant TIdTCPClient côté serveur et un composant TIdTCPServer côté client pour faire ce transfert, mais dans ce cas là .. ce ne sera plus vraiment une architecture client-serveur mais peer to peer lol
Comment faire donc ?
Merci
Partager