Echange de donées entre deux applications en réseau
youdream
Messages postés29Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention21 mars 2011
-
7 juin 2007 à 16:17
youdream
Messages postés29Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention21 mars 2011
-
14 juin 2007 à 14:48
j'expose mon soucis, j'ai deux pc en réseau, ils tournent avec XP Pro. j'ai programmé deux applications (une sur chaque pc) avec visual studio 2005 en C++. Voila le problème, la première doit envoyer des données à la deuxième. La deuxième traite les données et renvoi les résultats à la première. Si quelqu'un pouvais m'aider à trouver comment faire cela... parce que la j'en ai marre. pour info, j'ai essayé les fichiers masqués mais ca marche que si les applications sont lancées sur le même PC.
Merci d'avance.
cs_darunia
Messages postés354Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention24 mars 20112 7 juin 2007 à 20:25
Salut, il faut utiliser les sockets. Cherche, il y a plein d'exemple d'utilisation de WinSock (librairie permettant d'exploiter les sockets sous Windows).
youdream
Messages postés29Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention21 mars 2011 12 juin 2007 à 16:33
Je peux mapper a distance, ca je sais. mais je n'arrive pas à mapper deux .exe qui n'ont pas le même nom (deux processus distincts). ce serais sympa de me mettre sur la voie.
Vous n’avez pas trouvé la réponse que vous recherchez ?
youdream
Messages postés29Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention21 mars 2011 13 juin 2007 à 08:12
Le socket fonctionne en communication. mais toujours un petit hic : je transmet trois données et la dernière transmise écrase les deux autres. la partie de code ou je pense fais défaut, ca donne:
...
for(int i=0;i<3;i++)
{
...
if(i = = 0) var1 = buffer;
if(i = = 1) var2 = buffer;
if(i = = 2) var3 = buffer;
}
...
j'espère que c'est suffisant sinon, je verrais pour en mettre plus si mon maitre de stage est d'accord...
cs_darunia
Messages postés354Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention24 mars 20112 13 juin 2007 à 13:03
D'abord, je vois que ton code est en .net.
Dans ce cas, il vaudrait mieux utiliser les classes du framework qui se trouvent dans System.Net.Socket.
Ensuite, je te conseille d'utiliser des acquitements. Concretement, envoyer un octet à l'envoyeur une fois que la donnée a été reçue. Ca permet de bien synchroniser le client et le serveur.
youdream
Messages postés29Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention21 mars 2011 13 juin 2007 à 14:44
c'est ce que j'ai fais et ca marche. merci pour votre aide précieuse. une dernier chose : j'aimerais attendre la fermeture de la form2 pour poursuivre le code de la form1 qu'il y a après l'appel de la procédure qui ouvre la form2. merci encore...
cs_darunia
Messages postés354Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention24 mars 20112 13 juin 2007 à 19:06
Tu utilises des objets s'en meme t'en rendre compte on dirait !
Quand tu fais String^ str = gcnew String("toto"), str est un Objet String.
Es tu conscient que tu fais du C++ .net et pas du C++ ?
Sinon il faut que tu ouvres form2 (nomme tes fenetre mieux que ça) en modale.
Pour cela il faut utiliser la méthode ShowDialog plutot que la méthode Show pour afficher ta fenetre form2.
youdream
Messages postés29Date d'inscriptionsamedi 22 octobre 2005StatutMembreDernière intervention21 mars 2011 14 juin 2007 à 14:48
ou ca ouin j'en suis conscient. mais ca n'empèche qu'il faut bien commencer quelque part... Je sais ce qu'est un objet. mais je sais pas tous les utiliser.merci de ton aide...