- Mise en place
- Détail des différentes étapes
- Étape 1 : Établissement d'une connexion avec un serveur RPC ou FTP WINDEV
- Étape 2 : Transmission d'un fichier à un serveur FTP WINDEV
- Étape 3 : Récupération d'un fichier depuis un serveur FTP WINDEV
- Étape 4 : Fermeture d'une connexion avec un serveur RPC ou FTP WINDEV
Utilisation détaillée du FTP/RPC WINDEV
Pour envoyer et recevoir des fichiers, il faut respecter les règles ci-dessous : - Se connecter à un serveur FTP WINDEV par la fonction NetConnecte. Cette fonction établit une connexion entre WINDEV et le serveur et fournit un identifiant de connexion.
- Transmettre, récupérer des fichiers.
- Fermer la connexion avec le serveur avec la fonction NetDéconnecte.
Remarques : - Le protocole de communication TCP/IP doit être installé et une adresse IP doit être définie.
- Pour créer un serveur FTP/RPC WINDEV, il suffit d'utiliser la fonction NetDémarreServeur.
Détail des différentes étapes Étape 1 : Établissement d'une connexion avec un serveur RPC ou FTP WINDEV Pour transférer des fichiers, il est nécessaire d'établir une connexion avec un serveur RPC ou FTP WINDEV. L'établissement de la connexion est réalisée avec la fonction NetConnecte. Le code d'établissement d'une connexion doit se trouver avant la première fonction "Net". La valeur retournée par NetConnecte doit être conservée car celle-ci sera utilisée par les autres fonctions "RPC" et "FTP". Le code pour se connecter à un serveur RPC est par exemple le suivant :
FONCTION ConnexionRPC(Adresse, Utilisateur, Motdepasse) // Connexion à un serveur RPC NumConnexion est un entier NumConnexion = NetConnecte(Adresse, ServeurRPC, Utilisateur, Motdepasse) RENVOYER NumConnexion
Remarque : Comment créer un serveur RPC ou FTP WINDEV ? Pour créer un serveur RPC ou FTP WINDEV, il suffit de créer une application qui utilise la fonction NetDémarreServeur pour lancer le serveur. La fonction NetFinServeur permet d'arrêter ce serveur. Le fichier WDRPCSRV.INI contient les droits de connexion des utilisateurs. Ce fichier texte se trouve dans le même répertoire que le serveur RPC/FTP WINDEV. Il doit contenir une section "passwords" dans laquelle chaque point d'entrée est un nom d'utilisateur :
[passWords] NomUtilisateur1=MotDePasse1 NomUtilisateur2=MotDePasse2 NomUtilisateur3=MotDePasse3 ...
Notes : - Le poste serveur doit être accessible par tous les postes client (par TCP/IP).
- Pour être accessible, le poste serveur doit être lancé.
Étape 2 : Transmission d'un fichier à un serveur FTP WINDEV Dans l'exemple suivant, un fichier est transmis au serveur FTP WINDEV (fonction NetEnvoieFichier). Une jauge de progression permet de suivre la progression du transfert.
// Code d'initialisation de la fenêtre "ClientRPC" GLOBAL Transfert_Terminé est un booléen = Faux Transfert_EnCours est un booléen = Faux Evénement("Jauge_Transfert", "ClientRPC", "EnvoieFichier") .... ConnectFTP est un entier = NetConnecte("148.61.125.245", ServeurFTP, "GUEST", "") ...
// -- Bouton d'envoi du transfert SI Transfert_EnCours = Vrai ALORS Erreur("Un transfert de fichier est actuellement en cours") SINON Transfert_Terminé = Faux Transfert_EnCours = Vrai SI NetEnvoieFichier(ConnectFTP, "C:\autoexec.bat", "C:\autoexec.cli", ... "EnvoieFichier", 10) = Faux ALORS Info("Échec du transfert") FIN ... FIN
// -- Procédure Jauge_Transfert : gestion du transfert en cours PROCÉDURE Jauge_Transfert Message("Transfert en cours") Jauge(_EVE.wParam, _EVE.lParam) SI _EVE.wParam = _EVE.lParam ALORS Transfer_EnCours = Faux Transfert_Terminé = Vrai Message("Transfert terminé") Info("Transfert terminé") FIN
Étape 3 : Récupération d'un fichier depuis un serveur FTP WINDEV La fonction NetRécupèreFichier permet de récupérer un fichier présent sur le serveur FTP/RPC WINDEV. Remarque : il est possible de connaître facilement la liste des répertoires et fichiers sur un serveur FTP WINDEV. Vous pourrez trouver un exemple dans la description d'utilisation de la fonction NetListeRep.
// -- Code d'ouverture de la fenêtre // Demande d'un message disponible à Windows GLOBAL WM_MYMESSAGE est un entier lpString est une chaîne fixe sur 20 = "Jauge_Main" ConnectFTP est un entier // Connexion ConnectFTP = NetConnecte("148.61.125.245", ServeurFTP, "GUEST", "") WM_MYMESSAGE = AppelDLL32("USER32", "RegisterWindowMessageA", &lpString) // Branchement de la procédure Jauge sur ce message Evénement("MAJJauge", "MAIN", WM_MYMESSAGE)
// -- Code du bouton de récupération de fichier Sablier(Vrai) SI PAS NetRécupèreFichier(ConnectFTP, "C:\autoexec.bat", "C:\autoexec.cli", WM_MYMESSAGE, 10) ALORS Erreur("Erreur dans le transfert de fichier") FIN Sablier(Faux)
// -- Procédure MAJJauge() PROCÉDURE MAJJauge() // Affichage de la jauge // Si tout le fichier est transféré, on réinitialise la jauge SI _EVE.wParam = _EVE.lParam ALORS // Transfert terminé Jauge() SINON // Transfert en cours Jauge(_EVE.wParam, _EVE.lParam, "Transfert en cours") FIN
Étape 4 : Fermeture d'une connexion avec un serveur RPC ou FTP WINDEV Après avoir transférer des fichiers, il est nécessaire de rompre la connexion avec le serveur RPC ou FTP WINDEV. La déconnexion est réalisée avec la fonction NetDeconnecte. Le code de déconnexion doit se trouver après la dernière instruction "Net". La variable "NumConnexion", nécessaire à la déconnexion, contient la valeur retournée par NetConnecte.
Le code pour se déconnecter d'un serveur RPC WINDEV est le suivant :
// Déconnexion à un serveur RPC WinDev // NumConnexion contient la valeur retournée par NetConnecte NetDéconnecte(NumConnexion)
|
|
|
|