[..] Probleme fonction tcprecv()

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
lmkg
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 06 févr. 2011 16:25
Status : Hors ligne

[..] Probleme fonction tcprecv()

#1

Message par lmkg »

salut :)
je voudrais créer un script client avec le code:

Code : Tout sélectionner

$Msg=""
TCPStartup()
While $Msg<>"exit"
    $conn=TCPConnect("127.0.0.1",4444)
    TCPSend($conn,"Msg> ")
    $Msg=TCPRecv($conn,1000)
    MsgBox(0,"",$Msg)
WEnd
TCPShutdown()
 
comme vous le voyez ce script va afficher les messages du serveur dans une msgbox mais le probleme que je rencontre c'est avec la fonction tcprecv() qu'elle n'attend pas le message du serveur et affiche une msgbox vide en boucle. y'a t'il un moyen pour contrer cela?
ps: j'utilise netcat comme serveur avec la command: nc -l -p4444
cet fois ci j'ai fais plein de recherches avant de poster. d'ailleurs depuis hier :|
en éspérant que vous m'aiderez :)

merci
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#2

Message par TommyDDR »

Ah, vous aviez créé un TOPIC...
Attendez au moins 1j avant de MP la prochaine fois.

Je copie colle le MP que je vous ai envoyé :
TommyDDR a écrit :Tout d'abord, il ne faut pas mettre votre TCPConnect dans le while, en effet, vous devez vous connecter une seule fois !
Si vous voulez quand même "forcer" la connexion (au cas où le serveur ne soit lancé qu'après votre programme) faites une boucle JUSTE pour la connexion et après vous mettez votre boucle de TCPRecv.

Si vous ne voulez pas de MsgBox vides, testez ce qu'il y a dans $Msg avant de l'affiché, vous n'affichez que si ca n'est pas vide.

Code : Tout sélectionner

$Msg=""
TCPStartup()
Do
    $conn=TCPConnect("127.0.0.1",4444)
Until($conn > 0)

While $Msg<>"exit"
    TCPSend($conn,"Msg> ")
    Do
        $Msg=TCPRecv($conn,1000)
        If($Msg <> "") then
            MsgBox(0,"",$Msg)
        EndIf
        Sleep(10)
    Until($Msg <> "")
WEnd
TCPShutdown()
Edit : Mise à jour du code (j'avais mal lu votre demande)

PS (à propos de votre MP qui disait que le programme envoyai en boucle "Msg >") : Je pense qu'en cherchant à peu pres 12secondes vous auriez pu trouver..)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
lmkg
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 06 févr. 2011 16:25
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#3

Message par lmkg »

avec ton code il'y a plein de Msg> envoyer au serveur c'est a dire que le script tourne en boucle et envoi le message "Msg>" au serveur et n'attend pas le message du serveur avec la fonction:

Code : Tout sélectionner

$Msg=TCPRecv($conn,1000)
comment corriger cela?

merci
lmkg
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 06 févr. 2011 16:25
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#4

Message par lmkg »

up
lmkg
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 06 févr. 2011 16:25
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#5

Message par lmkg »

up
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#6

Message par zeshrek »

Premier up jeudi soir a 20:46, second jeudi a 13:44
Il est pourtant formellement interdit dans le reglement du forum d'espacer les UP de moins de 24h.
De plus tu avais été invité par TommyDDR a te montrer un, peu plus patient.

Pour mémoire, les gens répondent bénévolement en fonction de leurs compétences et disponibilité. Ce n'est pas en réclamant (j'ai failli mettre "en faisant le coucou") que les choses se passeront mieux... au contraire.

A bon entendeur...
Si vis pacem para bellum
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#7

Message par TommyDDR »

1UP !

Le forum mario n'est pas ici !

J'ai répondu à votre question (avant que mon message ne disparaisse) mais pour répondre à votre demande, il faut réellement chercher pas plus de 30secondes...

Étant donné que ce n'est pas votre 1ere demande dénuée de recherche, je vous laisse chercher.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
lmkg
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 06 févr. 2011 16:25
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#8

Message par lmkg »

Ahhh là c'est trop... tu veux que je cherche pendant tois ans pour trouver la réponse toi :roll:
pourtant c'est ce que je fait tout le temps avant de venir mettre des ups :roll:
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#9

Message par TommyDDR »

Ce qui me fait le plus rire c'est que vous prenez un temps fou à répondre alors que dans le dernier post ou j'ai mi du code... je vous ai mis la solution... -> http://autoitscript.fr/forum/viewtopic. ... 062#p44062
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
lmkg
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 06 févr. 2011 16:25
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#10

Message par lmkg »

TommyDDR a écrit :Ce qui me fait le plus rire c'est que vous prenez un temps fou à répondre alors que dans le dernier post ou j'ai mi du code... je vous ai mis la solution... -> http://autoitscript.fr/forum/viewtopic. ... 062#p44062
tu crois que c'est ça le probléme?
eh bah non le petit probléme que je rencintre c'est que quand j'envoie "exit" au serveur je ne me déconnecte pas et au contraire y a une msgbox avec comme message "exit" alors la ligne:

Code : Tout sélectionner

While $Msg<>"exit"
a quoi elle sert?

merci
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#11

Message par TommyDDR »

Votre dernière demande :
lmkg a écrit :avec ton code il'y a plein de Msg> envoyer au serveur c'est a dire que le script tourne en boucle et envoi le message "Msg>" au serveur et n'attend pas le message du serveur avec la fonction:
Code
$Msg=TCPRecv($conn,1000)

comment corriger cela?

merci
Je ne vois rien du tout parlant du "exit"

Et je vous ai déjà dit de mettre un ClipPut($Msg) juste avant le MsgBox qui vous affiche le "exit" puis de le coller dans le bloc note pour voir ce que $Msg contient réelement.

Pour info, avec ce code : $Msg NE PEUT PAS CONTENIR "exit" !

PS : Les infos écrites en rouges sont importantes ;)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
lmkg
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 06 févr. 2011 16:25
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#12

Message par lmkg »

TommyDDR a écrit :Et je vous ai déjà dit de mettre un ClipPut($Msg) juste avant le MsgBox qui vous affiche le "exit" puis de le coller dans le bloc note pour voir ce que $Msg contient réelement.
mais! $Msg contient "exit" sans saut a la ligne! (tester avec clipput)
j'ai même créer un sujet dans "demande de création de script" et il est supprimer. qu'est ce que ca vaut dire a ton avis? :x
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Probleme fonction tcprecv()

#13

Message par TommyDDR »

Ça veut simplement dire que comme beaucoup de message, il a été perdu pendant la migration. Certains de mes message aussi ont été supprimer (vous n'êtes pas le seul).

Vu la tournure que prend ce post, je vais arrêter d'y répondre, (Allez lire vos message perso du forum).
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre