[R] TCP, contrôle à distance et conditions

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

[R] TCP, contrôle à distance et conditions

#1

Message par blacksoul305 »

Bonjour, bonsoir,

je pense que le titre n'est pas bien explicite, voici la situation:

Je m'initie en ce moment, peu à peu avec le TCP. J'avoue que pour ce qui est de la fonctionnalité du "serveur", j'ai pris carrément pleins d'exemple que j'ai trouvé sur The Touche "F1". Cependant, j'ai un soucis:

Le projet:

Quelqu'un a besoin de mon aide pour pouvoir exécuter des programmes à distance sur son second PC. Je lui ai donc proposé mon aide et j'ai en fait fini le programme.
Le programme consiste à fermer, ouvrir ou relancer un, seul et unique programme sur son autre ordinateur. Ceci est composé donc d'un exécutable serveur à installer sur son PC contenant le programme et une application client qu'il doit garder tout le temps sur lui.

Problème:

Comme je l'ai dis plus haut, le programme est achevé mais je veux l'améliorer. Voilà concrètement ce que je veux faire:

- Lors de l'ouverture du client, le client dit à l'utilisateur si il s'est bien connecté au serveur.
- Lorsque le serveur réalise qu'UNE seule personne s'est connectée, il lui envoi une valeur précise qui dit soit que le programme est allumé, soit il est éteint.
- Le client analyse la valeur donnée, si elle équivaut a '8', donc grise le bouton "Fermer", si elle est équivaut à '9' on grise le bouton démarrer.
- Lorsque l'utilisateur appuie sur l'un des boutons proposés, il envoie une valeur spécifique au serveur.
- Lorsque le serveur reçoit la valeur '8', il ferme le programme, si il reçoit la valeur '9', on lance le programme et enfin, si il reçoit la valeur '10', on ferme le programme puis le relance.
- Lorsque le serveur a effectué ses actions, il envoi '8' si le programme s'est bien fermé, '9' si il s'est bien ouvert et '10' si il s'est bien relancé.
- On grise les boutons encore une fois selon la valeur reçu.

Voilà, vous comprendrez aisément que ce qui est barré sont les parties déjà programmées et fonctionnelles.

Code client;
► Afficher le texte
Code serveur;
► Afficher le texte
Voilà, on devine très bien que la partie serveur, je ne l'ai vraiment pas codé, j'ai juste regroupé quelques exemples, et je ne serai pas contre que l'on m'explique. M'enfin, c'est optionnel, je veux juste vous attirer l'attention sur ceci:

Question:

J'ai une petite chose qui me tracasse, je fais référence à "conditions" dans mon titre. C'est justement cela, pour exprimer plusieurs conditions, j'ai été habitué a:

Code : Tout sélectionner

If ;condition à vérifier Then
;tu me fais cela
ElseIf ;sinon, si il y a cela Then
;tu fais ça
Else ;sinon
;tu me fais ça
Ce qui me choque ici c'est qu'il n'y ait pas de "ElseIf", en effet:

Code : Tout sélectionner

If @error Then ExitLoop
If $recv = '8' Then ProcessClose($ProcessName)
If $recv = '9' Then Run($path)
If $recv = '10' Then
Ce qui me pose problème, c'est que à cause de ça j'arrive pas à faire cela:
- Lorsque le serveur a effectué ses actions, il envoi '8' si le programme s'est bien fermé, '9' si il s'est bien ouvert et '10' si il s'est bien relancé.
Je peux pas faire rentrer une condition dans une condition.
J'ai essayé de faire ça avec un "Switch" de la variable "$recv", mais j'ai du redémarrer mon PC sauvagement haha !

Voilà, j'espère que vous serez en mesure de m'expliquer ce système de condition, et si cela vous fait penser "mais il veut faire des programmes alors qu'il ne sait pas comment utiliser les conditions...", bah c'est juste que j'ai pas vraiment été habitué à cela. Juste pourriez-vous corriger mon script alors ?

Merci d'avance, je cherche toujours de mon côté !
Modifié en dernier par blacksoul305 le dim. 09 oct. 2011 21:11, modifié 2 fois.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#2

Message par cutprod »

Bonjour, a la fin de ta boucle appel une fonction qui vérifira l'etat du "process" et te renvera par tcp son etat =
► Afficher le texte
la j'ai pas le temps, mais essaye de faire ta fonction si ta du mal je reviendrai vers toi ce soir!
Mais d'ici la je ne doute pas qu'une bonne "âme" t'aide si besoin :)
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#3

Message par blacksoul305 »

Ah, super ! J'aurai du y penser plus tôt. Bah, j'te remercie pour l'idée, je devrais y arriver normalement. J'éditerai ce message lorsque j'aurai trouvé la solution ou bien trouvé un problème :P, merci !

EDIT: Bah j'ai un soucis ! :hap:

J'ai réussi à faire mes fonctions et tout ça, mais voilà mes 2 problèmes:

- Le serveur n'arrive pas à envoyer les valeurs au client et donc, les messages sont toujours faux !

- Le serveur n'exécute plus les programmes !

Bon, je mes mes codes actuels, je pense avoir ma petite idée sur le fait que le serveur n'envoie pas les valeurs, par contre, pour ce qui est qu'il n'exécute pas, j'trouve ça plutôt étrange.
► Afficher le texteClient
► Afficher le texteServeur
Voilà, j'espère que vous trouverez ce qui plante !

EDIT2: Je suis à court d'idée, j'espère que quelqu'un trouvera pourquoi je ne peux pas envoyer les valeurs jusqu'au client et pourquoi mon serveur n'ouvre plus les programmes !
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#4

Message par blacksoul305 »

Je me permet de faire un petit "up" étant donné que la plupart des sujets ci-dessus sont résolus.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#5

Message par cutprod »

Bonjour, dans ton client il faut que "$recv = TCPRecv($socket,3300)" soit dans ta boucle!
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#6

Message par blacksoul305 »

Merci pour ta réponse, cependant, j'ai vraiment plus la fois. J'ai travaillé toute la journée dessus et ça commence à me gonfler. Quand y a un truc qui marche, c'est issu du pour hasard et ça fait qu'un autre ne marche plus.

Si quelqu'un a du temps libre, ce quelqu'un peut refaire les parties du code. Au premier se poste se trouvent les fonctionnalités que je souhaite faire.


Merci d'avance.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#7

Message par cutprod »

Regarde ce post de notre ami "matwachich"
http://www.autoitscript.fr/forum/viewto ... =21&t=8354
Refais ton script en utilisant "TCPClass".
Un conseil commence par deux gui (un serveur, un client) équiper chacune d'un Edit, un input et d'un bouton.
Lorsque tu appuis sur le bouton de l'une, l'autre reçoit et affiche dans l'édit ce que tu as écris dans l'input.
Comme cela tu assimilera bien chaque partie du code...
Si tu n'y arrive pas je te posterai ça... Mais tu devrais y parvenir :)
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#8

Message par blacksoul305 »

Très franchement, j'ai rien compris. J'ai seulement regardé le serveur et le client, et je me vois mal faire un travail aussi démentiel. Il y a des arrays partout, choses que je n'ai jamais compris, des AddMethod, AddProperty et AddDestructor dont j'ai jamais entendu parlé. J'pense que ça serait plus simple que quelqu'un finisse mon bout de script. A pars si il est faux du début à la fin et que quelqu'un refasse mon truc en prenant compte de mon premier post. Merci cutprod !
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#9

Message par PandiPanda »

Le addmethode et etc... vienne de l'udf "AutoitObject.au3"
donc c'est normal que vous ne comprenniez pas au premier abord ...
si vous avez fait un peu de C,java, ... ceci devrai ne pas vous être trop "inconnu".
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#10

Message par matwachich »

Je prend le truc en main...
Je poste un script tout prêt ce soir.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#11

Message par matwachich »

Cadeau!
Fichiers joints
Pour blacksoul305.zip
(169.58 Kio) Téléchargé 96 fois
Modifié en dernier par matwachich le dim. 09 oct. 2011 20:33, modifié 1 fois.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#12

Message par cutprod »

Merci pour lui !!
Et pour les autres a qui ça servira. :wink:
Modifié en dernier par cutprod le dim. 09 oct. 2011 20:19, modifié 1 fois.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#13

Message par blacksoul305 »

Super, j'te remercie ! Par contre, il ne trouve pas le fichier "_processfunctions.au3". Il n'est pas dans l'archive non plus. A moins que ce soit ProcessPath ?
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#14

Message par matwachich »

Oups! décidement c'est un habitude d'oublier des fichiers!
J'utilise tellement d'UDF en tous genres...

J'update le zip...
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] TCP, contrôle à distance et conditions

#15

Message par blacksoul305 »

Mon Dieu, c'est trop beau, c'est trop utile. Je rage, j'suis jaloux ! J'vais apprendre le code par coeur, pas possible autrement !

Un GRAND merci à toi matwachich pour ton script !
Merci cutprod !
Étudiant en 2ème année de Licence Informatique.
Répondre