#c# #.net #ssh #terminal
#c# #.net #ssh #терминал
Вопрос:
Пытаюсь создать SSH-клиент, но наткнулся на препятствие. Я использую C # и библиотеку SSH.NET .
class Program
{
static void Main(string[] args)
{
using (var client = new SshClient("host", "username", "password"))
{
client.Connect();
var stream = client.CreateShellStream("vt220", 80, 12, 400, 100, 1024);
new Task(() =>
{
while (true)
{
if (stream.DataAvailable)
{
Console.Write((char)stream.ReadByte());
}
}
}).Start();
new Task(() =>
{
while (true)
{
if (stream.CanWrite)
{
stream.Write(Console.ReadKey(true).KeyChar.ToString());
}
}
}).Start();
while (true) ;
}
}
}
Проблема, с которой я столкнулся, заключается в том, что мои escape-последовательности не обрабатываются должным образом.
На скриншоте я пытаюсь запустить команду «очистить», она не работает.
Как мне следует поступить с этим?
Комментарии:
1. Также зависит от вашей версии Windows. Это улучшилось только в последних сборках Windows 10, например, 2 года назад и далее.
2. Не используйте конструктор задач
3. @TanveerBadar Я использую последнюю версию Windows.
4. @MichaelRandall Был бы поток лучше?
5. Также не делайте этого
while (true) ;