J'utilise actuellement un composant tiers pour gérer les connexions Telnet dans .NET. Je veux qu'il soit synchrone où j'envoie une commande au serveur telnet de réception et puis j'obtiens la réponse en tant que tableau de texte ou d'octets. Le seul problème est que le composant n'est pas configuré pour le faire. Le composant me permet d'envoyer des commandes au serveur, mais la réponse est renvoyée via un handle de fonction. Donc, en substance, j'ai besoin d'un moyen de mettre en pause l'application pendant que le gestionnaire fait son traitement. Voici un exemple de la façon dont je l'intention de contourner cette question:Création d'une boucle pour suspendre un script pendant l'exécution d'une fonction de rappel
static void Main(string[] args)
{
Telnet telCon = new Telnet();
telCon.OnDataIn += new Telnet.OnDataInHandler(HandleDataIn);
telCon.Connect(remoteHostStr);
while (true) ;
}
public static void HandleDataIn(object sender, TelnetDataInEventArgs e)
{
string responseStr = e.Text;
if (responseStr.Contains("Username:"))
{
((Telnet)sender).Send(System.Text.ASCIIEncoding.ASCII.GetBytes(username));
}
else if (responseStr.Contains("Password:"))
{
((Telnet)sender).Send(System.Text.ASCIIEncoding.ASCII.GetBytes(password));
}
}
La solution travail ci-dessus ne sera pas puisque le while
aura toujours courir, mais je vais probablement construire une future version qui utilise une sorte de variable globale suivre si la boucle doit encore fonctionner. Cependant, tout ce qu'on m'a appris sur la programmation dit que c'est très sale. Quelqu'un peut-il penser à une autre façon de contourner mon dilemme?
Merci, Chris
En tant que test, je cherche à l'utiliser dans une application console. Finalement, il fera partie d'une page ASP.NET, et la sortie du serveur telnet sera écrite dans la réponse de la page. – regex