Telnet [Résolu]

Signaler
Messages postés
35
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
28 novembre 2008
-
Messages postés
35
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
28 novembre 2008
-
Bonjour

j'essaye de me connecter en telnet sur une machine.
j'utilise le programme ci dessous ..
j'arrive à avoir la 1° page de connexion , mais lorsque j'envoi une commande, je récupère en retour cette commande. De plus elle ne semble pas prise en compte...
du style je tape "root" et j'obtiens "root" de le flux reçu ....
 
losque j'utilise cmd.exe de windows cela marche nickel ...

help please !!!

// On  se connecte

TcpClient client=

new
TcpClient(hote, port);



NetworkStream stream=client.GetStream();













// On transforme la chaine de caractŠres en bytes






byte
[] outBuffer=

Encoding
.Unicode.GetBytes(msg);


// Envoie du message

stream.Write(outBuffer, 0, outBuffer.Length);













// Buffer de r‚ception






byte
[] inBuffer=

new



byte
[client.ReceiveBufferSize];


// R‚ception du message






int
nRead=stream.Read(inBuffer, 0, inBuffer.Length);


// Fermeture de la connexion

client.Close();

6 réponses

Messages postés
35
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
28 novembre 2008
1
j'ai trouvé ...
il faut penser à ajouter \r\n à la fin des commandes envoyées.... !!!! c'est con , mais j'y avais pas penser
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
euh... pourquoi utilisé TcpClient pour faire du telnet ?
Ca ne serait pas plus simple avec les Sockets ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
35
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
28 novembre 2008
1
quelle est la différence ?
TcpClient n'encapsule pas la classe socket ?
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
si si... mais au moins tu maîtrises ce que tu fais...
Telnet est un "protocole" simple... t'envoie une commande... tu as une réponse... c'est tout.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
35
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
28 novembre 2008
1
j'ai essaye avec les sockets  même prob...

j'utilise ces 2 fonctions trouvées sur le site Microsoft....

private
static
Socket ConnectSocket(
string server,
int port){

Socket s =
null;

IPHostEntry hostEntry =
null;

// Get host related information.hostEntry =

Dns.GetHostEntry(server);

foreach (
IPAddress address
in hostEntry.AddressList){

IPEndPoint ipe =
new
IPEndPoint(address, port);

Socket tempSocket =
new
Socket(ipe.AddressFamily,
SocketType.Stream,
ProtocolType.Tcp);tempSocket.Connect(ipe);

if (tempSocket.Connected)   {
       s = tempSocket;

      break;
   }

   else
   {

      continue;
   }}

return s;}

// This method requests the home page content for the specified server.

private
static
string SocketSendReceive(
Socket s,
string request){

//string request = "root";

Byte[] bytesSent =
Encoding.ASCII.GetBytes(request);

Byte[] bytesReceived =
new
Byte[256];

// Send request to the server.s.Send(bytesSent, bytesSent.Length, 0);

 

int bytes = 0;
string page "";bytes s.Receive(bytesReceived, bytesReceived.Length, 0);

page = page +

Encoding.ASCII.GetString(bytesReceived, 0, bytes);

return page;}
Messages postés
35
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
28 novembre 2008
1
re-bonjour

j'ai toujours mon problème... l'info envoyée est retournée dans le flux de retour...

quelqu'un a t'il une idée ????

merci