OVH Cloud OVH Cloud

Envoi de commandes par Telnet

5 réponses
Avatar
archives
Bonjour,

J'utilise un serveur qui accepte les lignes de commandes passées par Telnet.

J'ouvre ainsi la connection par "Telnet localhost 5432" où 5432 est le n° du
port utilisé par le serveur.

Existe t-il un moyen d'établir une connection avec le serveur directement
sous VB, d'envoyer des commandes au serveur et de récupérer les réponses
du serveur ?

Merci de votre aide

5 réponses

Avatar
ng
Salut,

Oui il faut utiliser les sockets, tu peux le faire avec le controle Winsock
(il faut l'ajouter au projet (ctrl + t) puis en mettre un sur la form) :

option explicit

Private Sub Command1_Click()
Call Winsock1.Connect("localhost", 5432)
End Sub


Private Sub Winsock1_Connect()
'// on est connecté, on peut envoyer des commandes :
Call Winsock1.SendData("ma commande")
End Sub

Private Sub Winsock1_SendComplete()
'//la commande a été envoyée
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
'//recéption de données
Dim strBuffer As String
Call Winsock1.GetData(strBuffer, vbString)

'//données recues :
Debug.Print strBuffer
End Sub

Private Sub Winsock1_Close()
'//connexion fermée
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String,
ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal
HelpContext As Long, CancelDisplay As Boolean)
'//erreur
End Sub


C'est le béaba d'une connexion à un serveur en socket, tu trouveras plus
d'infos sur le net (google groups, msdn...)


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

archives wrote:
Bonjour,

J'utilise un serveur qui accepte les lignes de commandes passées par
Telnet.

J'ouvre ainsi la connection par "Telnet localhost 5432" où 5432 est
le n° du port utilisé par le serveur.

Existe t-il un moyen d'établir une connection avec le serveur
directement sous VB, d'envoyer des commandes au serveur et de
récupérer les réponses
du serveur ?

Merci de votre aide


Avatar
archives
Merci pour cette réponse. J'utilise en fait Access et cette procédure ne
m'est pas habituelle. J'essaie d'obtenir le controle Winsock (il n'apparaît
pas sous Access 97) et je teste cette solution.

Encore merci
Avatar
ng
Salut,

Si il existe aussi sous access, tu le trouveras ds la liste des composants
(Ctrl + T) : Microsoft Winsock Control 6.0

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

archives wrote:
Merci pour cette réponse. J'utilise en fait Access et cette procédure
ne m'est pas habituelle. J'essaie d'obtenir le controle Winsock (il
n'apparaît pas sous Access 97) et je teste cette solution.

Encore merci


Avatar
archives
> Si il existe aussi sous access, tu le trouveras ds la liste des composants
(Ctrl + T) : Microsoft Winsock Control 6.0



J'ai pu me procurer Winsock et l'utiliser avec un module de classe. Celà
fonctionne très bien. Le seul point qui me chagrine est qu'il faut un
contrôle Winsock présent dans un formulaire ouvert pour pouvoir l'utiliser
car Access refuse de créer un nouvel objet de classe Winsock sous pretexte
qu'il s'agit d'un OCX. Le formulaire en question ne sert à rien.

Encore merci pour cette méthode et ces conseils.
Avatar
ng
Salut,

Dans ce cas tu peux passer par les APIs Socket, mais c'est bien plus
compliqué ! Regarde dans l'api guide.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

archives wrote:
Si il existe aussi sous access, tu le trouveras ds la liste des
composants (Ctrl + T) : Microsoft Winsock Control 6.0



J'ai pu me procurer Winsock et l'utiliser avec un module de classe.
Celà fonctionne très bien. Le seul point qui me chagrine est qu'il
faut un contrôle Winsock présent dans un formulaire ouvert pour
pouvoir l'utiliser car Access refuse de créer un nouvel objet de
classe Winsock sous pretexte qu'il s'agit d'un OCX. Le formulaire en
question ne sert à rien.

Encore merci pour cette méthode et ces conseils.