2 Stimmen

VT100 Emulation Bibliothek in C# mit SharpSSH

Ich spiele gerade mit Tamir.SharpSsh herum und wollte sehen, ob es möglich ist, damit einen Konsolen-SSH-Client vollständig in C# zu implementieren. Ich meine nicht etwas wie Putty, wo es tatsächlich in seiner eigenen GUI läuft, sondern etwas, das direkt von der Windows-CMD-Konsole ausführen könnten.

Die Bibliothek ist ziemlich gut, außer dass sie die Terminal-Emulation in keiner Weise behandelt. Wenn Sie also SshShell verwenden, können Sie eine grundlegende Interaktion durchführen, aber die Ausgabe ist oft sehr hässlich und voller zufälliger Zeichen, und Sie können nicht tatsächlich mit Dingen wie Shell-Skripten interagieren, usw.

Soweit ich weiß, leitet SharpSSH einfach die Ein- und Ausgabe an die Konsolen-Ein- und Ausgabe weiter.

Wie schwer wäre es, dies an anderer Stelle umzuleiten und die Terminal-Emulation zu behandeln? Gibt es bereits eine Emulationsbibliothek (C# und Open Source, bevorzugt), die ich verwenden könnte?

Bearbeiten: Habe SharpSSH aufgegeben, siehe Antwort unten für die endgültige Lösung, auf die ich gekommen bin.

3voto

Adam Haile Punkte 29829

Ich habe tatsächlich aufgehört, SharpSSH zu verwenden. Es ist eine gute Bibliothek, aber sie war einfach zu unzureichend in der Gesamtfunktionalität. Ich verwende jetzt eine Bibliothek namens Granados, die eine viel umfassendere SSH-Implementierung ist. Sie verfügt über ein integriertes Ereignismodell (im Gegensatz zu SharpSSH, bei dem es hauptsächlich darum geht, mit Streams zu jonglieren), was die Verwendung sehr einfach macht.

Was die Terminal-Emulation betrifft... Granados ist tatsächlich der Kern eines anderen Open-Source-Projekts namens Poderosa.

Poderosa ist eine vollständige Terminal-Emulator-Anwendung, die eine Verbindung zu SSH, Telnet und sogar Ihrer lokalen Cygwin-Installation herstellen kann.

Ich bin nicht wirklich in den Code für die Terminal-Emulation eingestiegen, aber es funktioniert definitiv sehr gut, daher bin ich sicher, dass Sie ganz einfach den benötigten Code extrahieren könnten.

1voto

Luke Punkte 18175

Ich suche das gleiche. Es gibt eine Bibliothek hier, die $700 kostet. Habe eine andere gefunden auf codeproject, die schlecht aussieht, aber vielleicht ein guter Anfang sein könnte. Und es gibt eine unvollständige Implementierung direkt hier auf stackoverflow. Suche immer noch..

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X