IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

[Indy] Transfert de fichiers du serveur vers le client


Sujet :

Web & réseau Delphi

  1. #1
    Membre actif Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 212
    Points
    212
    Par défaut [Indy] Transfert de fichiers du serveur vers le client
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OpenWriteBuffer;
    WriteStream(memstream);
    CloseWriteBuffer;
    Et j'arrive réceptionner le fichier côté serveur.

    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

  2. #2
    Membre actif Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 212
    Points
    212
    Par défaut
    Personne n'a d'idée ? J'ai parcouru toute la partie Indy de la FAQ Delphi (j'ai d'ailleurs trouvé plein de petits trucs intéressants au passage lol).
    Mais la seule fos où l'on parle de transfert de données, c'est entre client et serveur et non l'inverse (à part les simples messages textes, broadcast etc..)...

    snif

  3. #3
    tintin22
    Invité(e)
    Par défaut
    Jete un coup d'oeil sur cet exemple (ScreenThief avec idTCP), on réalise l'inverse à l'aide d'un Timer, ça reste des chaines de caracteres mais à mon avis c'est possible de transferer un fichier.

  4. #4
    Membre actif Avatar de Nicodemus
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 242
    Points : 212
    Points
    212
    Par défaut
    Merci.

    En fait je savais comment faire côté client. Mais côté serveur : TIdTCPServer.Read/Write Stream n'existe pas.

    Il fallait faire : ASender.Thread.Connection.ReadStream dans les fonctions CommandHandler

    Tout s'explique !

  5. #5
    tintin22
    Invité(e)
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer un fichier du serveur vers le client
    Par Isher dans le forum ASP.NET
    Réponses: 4
    Dernier message: 15/05/2009, 09h23
  2. Réponses: 5
    Dernier message: 28/06/2007, 10h17
  3. Télécharger un fichier du serveur vers mon PC
    Par diamonds dans le forum Apache
    Réponses: 2
    Dernier message: 04/02/2007, 18h53
  4. Transférer fichier de serveur vers presse-papier
    Par gilleluc dans le forum Applets
    Réponses: 2
    Dernier message: 02/10/2006, 02h15
  5. copier fichier du serveur vers le client fso
    Par nigiri dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2006, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo