In dem Video wird der Tunnel in der selben Funktion aber wieder
geschlossen.
Ich möchte den Tunnel allerdings solange offen lassen bis ich ihn
manuell wieder schließen möchte (button drücken).
1
EinezweiteFunktionwiediesehier:
2
publicvoidssh_disconnect()
3
{
4
portFwdL.Stop();
5
client.Disconnect();
6
}
kann natürlich nicht auf die portFwdL und client zugreifen.
Wie würdet ihr das machen?
Grüße
Kai
//Timespan erstellt eine Zeitintervall für den Timeout der Verbindung. In diesem Fall 30 Sekunden.
5
connectionInfo.Timeout=TimeSpan.FromSeconds(30);
6
varclient=newSshClient(connectionInfo);
... als funktionslokale Objekte existieren können, sondern werden zu
Membervariablen der Klasse (und damit des davon erzeugten Objektes)
werden müssen, damit alle Funktionen dieser Klasse auf diese
Membervariablen Zugriff haben.
Hallo Karl, danke für deine Antwort.. ich bin dazu zu dämlich...
Zu deinem Stichwort Membervariablen habe ich jetzt den Aufbau einer
Klasse gefunden:
1
publicclassPerson
2
{
3
// Membervariablen
4
privatestringvor;
5
privatestringnach;
6
7
//Zugriffsmethoden für lesenden Zugriff
8
publicstringGetVorname()
9
{
10
returnvor;
11
}
12
13
publicstringGetNachname()
14
{
15
returnnach;
16
}
17
18
//Zugriffsmethoden für schreibenden Zugriff
19
publicvoidSetVorname(stringv)
20
{
21
vor=v;
22
}
23
24
publicvoidSetNachname(stringn)
25
{
26
nach=n;
27
}
28
29
}
Jetzt werden hier Membervariablen erstellt, allerdings lediglich
Strings.
Wie kann denn ein Objekt als Membervariable dienen?
Hab jetzt mal einfach gedacht und die Strings ausgetauscht:
das kann ein Blinder auf 15 Meter Entfernung greifen.
Vielleicht solltest du weniger Video schauen und dir mal ein
Einsteigerbuch für C# zulegen. Oder zumindest mal ein Videotutorial für
Einsteiger :-)
1
classssh
2
{
3
privateSshClientclient;
4
privateForwardedPortLocalportFwdL;
5
...
Wenigstens rudimentäre Kentnisse seiner Programmiersprache sollte man
schon haben. Zumindest für die wirklich ganz einfachen Dinge.
Karl Heinz schrieb:> sieht wohl so aus.
Danke, bin halt kein Programmierer und die Denkweise ist mir nicht immer
klar.
In einem Fall legt man ein Objekt gleich mit allem möglichen Kram an, in
diese Fall fügt mal den Kram erst später hinzu, woher soll ein Anfänger
das wissen?
Kai schrieb:> woher soll ein Anfänger das wissen?
in dem man selber etwas rumprobiert und nicht nach 10min aufgibt und in
Foren sucht/fragt.
Wissen kommt vom selbständig lernen und nicht vom Copy and Paste.
Das sind einfach Grundlagen, jeder objektorientierten Programmierung.
Sind nicht mal von der Sprache abhängig.
nachtrag:
und von YT kann man nichts sinnvolles lernen
> ich habe mir mit diesem Tutorial Video hier:> Youtube-Video "MySQL Connection über SSH in C# .NET - Tutorial"
Bücher/Webseite/Doku sind enthalten alles viel mehr Infos als
irgendwelche Videos.
Karl Heinz schrieb:> sieht doch völlig anders aus, als das von dir geschriebene> class ssh>> {>>>> PasswordConnectionInfo connectionInfo = new>> PasswordConnectionInfo("xxxxxxxxx.stratoserver.net", 22,>> txtbx_login.Text, txtbx_pwd.Text);>> var client = new SshClient(connectionInfo);>> var portFwdL = new ForwardedPortLocal("127.0.0.1", 3306,>> "127.0.0.1", 3306);>>
Ist aber prinzipiell ok.
Was vermutlich nicht so gut kommt, txtbx_login.Text und txtbx_pwd.Text
müssen zu diesem Zeitpunkt noch nicht unbedingt bekannt oder konstruiert
sein. Gibt dann entweder Mecker vom, na nennen wir das mal, Compiler
oder einen Crash. Vielleicht postet der geneigte TO ja mal eine etwas
bessere Fehlermeldung als 'funktioniert nicht' oder wir raten einfach
munter weiter.
Stefan