[Telnet] Envoi de la commande Ctrl+c pour stopper le prog distant?

Envoi de la commande Ctrl+c pour stopper le prog distant? [Telnet] - Java - Programmation

Marsh Posté le 19-09-2006 à 15:52:04    

Bonjour
 
J'ai réalisé un client Telnet à partir de la bibliothèque Telnet d'Apache Jakarta (Commons Net).
Tout fonctionne bien mais j'aimerai bin pouvoir stopper un programme à distance comme avec le telnet classic en utilisant la combinaison de touches "Ctrl+c".
 
Pour faire celà j'ai mis en place un KeyListener dans ma JFrame, j'arrive à récupérer la succession de touches : "Ctrl" puis "c". A ce moment là j'essaye d'envoyer la commande adéquate à l'ordinateur distant.
 
D'après cette page il existe plusieurs commandes telnet :
http://jakarta.apache.org/commons/ [...] mmand.html
 
Apparement les commandes Telnet commencent par un byte IAC. J'ai donc essayé de la sorte :
 

Code :
  1. static byte[] _COMMAND_BREAK = new byte[]{(byte)TelnetCommand.IAC,(byte)TelnetCommand.BREAK};


 
La commande BREAK est bien celle qui convient à mon utilisation?
Ensuite pour envoyer la commande :
 

Code :
  1. _out.write(_COMMAND_BREAK);
  2. _out.flush();


 
Mais ça ne fonctionne toujours pas, je lis bien sur la sortie un caractère bizare (style "ô" ) mais ce n'est pas reconnu comme une commande :(
 
Merci pour votre aide :hello:

Reply

Marsh Posté le 19-09-2006 à 15:52:04   

Reply

Marsh Posté le 19-09-2006 à 20:13:38    

c'est pas à cause du type de sortie utilisée ,???
tu utiliserais pas une sortie texte à la place d'une sortie binaire ce qui ferait que ta commande byte soit convertie en String (le o bizarre ) ??

Reply

Marsh Posté le 19-09-2006 à 22:28:10    

tu as raison c'est surement ça, il faut que je fasse des recherches la dessus, merci :jap:

Reply

Marsh Posté le 20-09-2006 à 09:53:33    

J'ai récupéré les sources de la bibliothèque apache, j'ai ajouté une fonction dans la class "org.apache.commons.net.telnet.Telnet" pour envoyer la commande BREAK et ça fonctionne super :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed