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

Delphi Discussion :

Cherche à remplacer les mailslots par autre chose.


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 51
    Points
    51
    Par défaut Cherche à remplacer les mailslots par autre chose.
    Bonjour,

    Sous delphi (à partir de la version 5), qu'est ce qui pourrait remplacer les mailslots afin de pouvoir
    envoyer des fichiers vers des utilisateurs dans un reseau local ?

    Il faudrait, toujours, envoyer vers un code utilisateur...

    Merci d'avance pour votre aide :-)

  2. #2
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Réponse : des composants tcp/ip faits pour ça.

    J'ai écris des composants rien que pour ça, ils sont en pièce jointe du 2ème message de ce fil de discussion :
    http://www.developpez.net/forums/sho...ghlight=socket

    Les deux composants qui t'intéresseront dans le lot sont TWAFileServer et TWAFileClient.

    Ils sont très simple à utiliser

    Pour le composant Serveur, voici les propriétés exposées :
    Port : numéro du port (c'est toi qui le choisi, en évitant un numéro de port dédié à d'autres applications, exemple : 25000)
    RootPath : répertoire racine où sont stockés les fichiers (il peut y avoir des sous-répertoire, mais l'accès à tel ou tel sous-répertoire est géré du coté du client)

    Pour le client :
    Host : adresse IP ou nom de la machine sur le réseau sur laquelle se trouve le serveur.
    Port : mettre le même numéro de port que celui qui à été mis pour le serveur.
    RelativeFilePath : chemin relatif (donc sous répertoire du Rootpath du serveur) vers lequel les fichiers seront uploadés ou à partir duquel ils seront downloadés.

    A ne pas renseigner :
    FromFile : chemin et nom de fichier de départ en cours de transfert
    ToFile : chemin et nom de fichier de destination en cours de transfert
    SizeOfFile : taille du fichier en cours de transfert

    Méthodes et propriétés publiques cotés serveur :

    Open : démarre le serveur (il attend maintenant les connections des clients)
    Close : arrête le serveur (coupe donc toutes les connections);
    Disconnect(Socket: TSocket) : déconnecte un client, identifié par son numéro de socket
    Clients: de type TWAFileClientList, est la liste de tous les clients actuellement connectés au serveur
    OnAccept : paramètres--> (Sender: TObject; Socket: Cardinal);
    Un nouveau client se connecte
    OnClose(Sender: TObject; Socket: Cardinal);
    Un client annonce qu'il va se déconnecter
    OnAfterClose : (Sender: TObject; Socket: Cardinal);
    Le client s'est déconnecté
    OnError(Sender: TObject; Error: Integer; Msg: String);
    Une erreur réseau à eu lieu
    OnDownloadRequest(Sender: TObject; FromFile: String; SizeOfFile: Cardinal);
    Un Client à demandé un fichier
    FileListRequest(Sender: TObject; Socket: Cardinal; RelativePathWanted, FileAttributes: String);
    Un Client à réclamé la liste des fichiers se trouvant dans le sous répertoire indiqué

    UploadRequest(Sender: TObject; ToFile: String; SizeOfFile: Cardinal);
    Un client s'apprète à uploader un fichier vers le serveur

    Description de la classe TWAFileClientList :
    Représente, pour le serveur, une liste de clients connectés, une sorte de tableau, indexé de 0 à COunt-1 (classique...)
    Count: nombre de clients dans la liste
    IndexOf(Socket: TSocket): fonction qui renvoi l'index d'un client à partir de son numéro de socket
    Sockets[Index: integer]:fonction qui renvoi le numéro de socket d'un client à partir de son index dans la liste

    Status[Index: integer] et SocketStatus[Socket: TSocket] : de type TWAFileClientStatus, renvoi le statut en cours d'un client.

    Description de la classe TWAFileClientStatus
    FileName :TFileName --> Nom du fichier sur le serveur en cours de traitement
    FileHandle :File read FFileHandle -->Handle de ce même fichier
    FileList:TWAFileList --> Liste des fichier mis à disposition du client dans le répertoire "relatif" que le client à demandé
    Uploaded : Cardinal --> taille de ce qui a été uploadé par le serveur donc dowloadé par le client
    Downloaded : Cardinal --> taille de ce qui a été downloadé par le serveur, donc uploadé par le client
    ToDownload : Cardinal --> taille de ce qui reste à downloader par le serveur
    ToUpLoad : Cardinal --> taille de ce qui réste à uploader par le serveur

    Méthodes et propriétés publiques cotés client :

    En plus de Open, Close, OnError, etc...
    on trouve :
    UpdateFileList(RelativePathWanted:string;FileAttributes:integer); prrocédure qui permet au client de réclamer la liste des fichiers au serveur

    UpLoad(FileNameSour,FileNameDest:string);
    Permet au client d'envoyer un fichier au serveur.
    Download(FileNameSour,FileNameDest:string);
    Permet au client de télécharger un fichier depuis le serveur

    Et les évènements ont, je pense des nom suffisemments parlants.


    Si tu as besoin d'un exemple, n'hésites pas
    Bidouilleuse Delphi

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    Désolé pour ce retard
    Juste pour vous dire un immense MERCI

    C'est super...

    Merci encore :-)

Discussions similaires

  1. [AC-2003] Remplacer .end (xldown) par autre chose
    Par Deustalos dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/09/2010, 10h55
  2. Remplacer les Caractères Null (Ascii 00) par autre chose
    Par wayak3 dans le forum Développement
    Réponses: 6
    Dernier message: 29/05/2008, 10h47
  3. [W3C] remplacer alt par autre chose ?
    Par gloglo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/04/2007, 11h26
  4. remplacer le nom dns par autre chose
    Par griese dans le forum Apache
    Réponses: 11
    Dernier message: 06/07/2006, 16h32
  5. Réponses: 3
    Dernier message: 23/12/2005, 16h13

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