ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

transmission de messages entre 2 executables   



L'auteur

Jean à Grenoble
France France
Membre Actif (personne physique)
# 0000000032
enregistré le 16/10/2004

http://www.j-maurice.fr
69 ans
MAURICE JEAN
38000 GRENOBLE
Fiche personnelle


Note des membres
pas de note

Contributions > 05 - API et appels systèmes

transmission de messages entre 2 executables
# 0000000884
ajouté le 12/08/2014 21:06:57 et modifié le 13/08/2014
consulté 10173 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0


Télécharger le ZIP (19.25 Ko)
Description
Ce projet et cette form indépendante vont vous permettre de tester la synchronisation de deux applications et la transmission de messages de l'une à l'autre.
La transmission des messages est basée sur le protocole TCP, sur Winsock et sur l'olecontrol MSWinsock.Winsock.1
L'idée originale en revient à Eddy MAUE.

Le protocole TCP est symétrique : vous allez pouvoir envoyer et recevoir des messages mais il faut tout de même un serveur dont le seul rôle particulier sera d'initialiser le canal de communication. J'ai installé le serveur sur la form babazou_esclave qui appartient au projet donc à l'executable. Avant toute chose il faut donc (compiler et) lancer cet executable (a priori à partir de l'explorateur et non à partir de VFP). Il se peut que Windows vous demande l'autorisation de le lancer (uniquement la première fois). En cas de pépin, vous pouvez fermer l'executable en cliquant sur le bouton 'issue de secours'. Sinon il va être piloter par la form test_esclave.scx.

J'ai défini une structure des messages : les 2 premiers caractères contiennent chacun un code opération le reste du message est libre. Le code 0 + 0 provoque l'arrêt de l'executable (c'est la méthode normale pour l'arréter). Le code 0+1 correspond à un 'ping' : l'executable répond immédiatement à l'émetteur avec le code 1 + 0 suivi du message libre 'retourné'. Le code 0+2 suivi par un message contenant une valeur numérique (<1000 pour commencer !) provoque une attente sur l'executable avant la réponse (c'est ce message qui m'a permis de voir l'utilisation des coeurs avec le gestionnaire des tâches). Vous pouvez compléter les actions dans la méthode ThisForm.tcpServer.DataArrival de la form babazou_esclave du projet.

Lancer VFP et la form test_esclave. Entrez les 2 codes fonctions (en numérique) et un texte; cliquez sur 'envoi' : les 2 codes et le texte apparaissent dans la form babazou_esclave. Si vous avez programmé une réponse ou si vous envoyez le code 0 + 1, la réponse retournée par l'executable s'affiche dans la fenêtre test_esclave avec la durée de la transmission complète. Envoyez un message avec le code 0 + 0 pour arréter l'executable puis quittez la fenêtre test_esclave.

Le code est simple et facilement accessible.

Ceci est un premier jet : toutes les critiques, améliorations, .... sont les bienvenues !

J. MAURICE
12 août 2014
Commentaires
Aucun commentaire enregistré ...

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3