Re: SVP A l'aide!! : Client Telnet sous Windev??

Posté par lmame le 7/10/2006 1:33:42
Citation :
Actuellement je teste sur un poste Win XP.
Aprés quelque teste, j'ai résussi a écrire le code suivant, il n'affiche pas d'erreur, mais il reste figé lorsqu'il arrive à la première instruction Info(SocketLit("telnet1",False,300)) :

---------------------------------------------------------------------
Multitask()
IF NOT SocketExist("telnet1") THEN
IF NOT SocketConnect("telnet1",23,"127.0.0.1") THEN
Error(ErrorInfo())
RETURN
END

SocketWrite("telnet1",RC)
// info(SocketLit("telnet1",false,300))
SocketWrite("telnet1","uid"+RC) // pour le login
// info(SocketLit("telnet1",false,300))
SocketWrite("telnet1","pwd"+RC) // pour le password
Info(SocketLit("telnet1",False,300))
SocketWrite("telnet1","d:"+RC)
Info(SocketLit("telnet1",False))
SocketWrite("telnet1","cd\"+RC)

SocketWrite("telnet1","dir *.* >> dir06.txt"+RC)

SocketClose("telnet1")
ELSE
Info("existe")
END
---------------------------------------------------------------------
Merci & cordialement.

J'ai écrit un client Telnet rapide car Hyperterminal ne correspondait pas franchement à ce que je voulais...
Plusieurs choses:
1°) Par défaut le mode de transmission de Windev ne convient pas, il faut en changer,
2°) ça dépends des serveurs ou des routeurs auxquels on accède, mais il ne faut pas "valider" par RC (soient deux caractères en fait, caract(13)+caract(10) ou \r\n), un caract(10) suffit dans la plupart des cas.
3°) il vaudrait mieux que le socketlit soit dans un thread (enfin, ça dépends des applications)...

Ca donnerait donc en effet un truc comme ça:
SocketConnect("test",23,"192.168.1.166")
SocketChangeModeTransmission("test",SocketSansMarqueurFin)


Et pour envoyer les data:
SocketWrite("test","uid"+caract(10))

etc...

Pour la réception de data, ou une boucle avec timeout, ou un thread avec donc une "synchro"... Mais ça marche très bien ;)

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=4629&post_id=19230