AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Komponente für SSH-Verbindung
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente für SSH-Verbindung

Ein Thema von daliuz · begonnen am 7. Jun 2006 · letzter Beitrag vom 2. Apr 2017
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
Benutzerbild von daliuz
daliuz
Registriert seit: 16. Apr 2004
Hallo,

Nachdem ich lange nach einer freien ssh-Komponente gesucht habe und im Netz nichts aufzutreiben war, habe ich mir selber etwas geschrieben. Secure Black Box wäre auch eine Alternative, kostet allerdings auch etwas.
(Die Komponente wurde mit Delphi2005Prof geschrieben.)

Gleich mal vorneweg -> Sie basiert auf Plink (gehört zu Putty). Es ist also nur ein Interface zwischen Delphi und Plink. Plink läuft unsichtbar im Hintergrund.

Es werden Events für Ankommende Daten und mögliche Fehler ausgelöst.

Zum Anzeigen und zur Eingabe eignet sich bestens "emulvt.pas" aus den ICS.

Somit ist es möglich über ssh und delphi, einen Befehl oder Batch- files mit mehreren Befehlen auf dem Remote-rechner auszuführen.

Wer es nicht als Terminal nutzen will, kann die Esqape-sequenzen wahlweise rausfiltern.

So denn, würde mich über Kommentare freuen!

Daliuz
Angehängte Dateien
Dateityp: zip plinkremote_777.zip (5,7 KB, 605x aufgerufen)
Dateityp: zip plinkremotev1.1_159.zip (5,8 KB, 727x aufgerufen)
 
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#31
  Alt 12. Mär 2009, 23:44
Hat keiner eine Idee, warum der Thread sich nachher blockiert?

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#32
  Alt 13. Mär 2009, 02:43
Der Quellcode enthielt mehrere Problemstellen, der schlimmste Fehler war in PLinkremote.pas und dort in ReadPipe. Dort wurde nämlich nicht an allen Stellen die übergebene Pipe benutzt, sondern immer die globale Output-Pipe.
Angehängte Dateien
Dateityp: zip plinkremote_188.zip (314,3 KB, 131x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#33
  Alt 13. Mär 2009, 15:30
Zitat von omata:
Der Quellcode enthielt mehrere Problemstellen, der schlimmste Fehler war in PLinkremote.pas und dort in ReadPipe. Dort wurde nämlich nicht an allen Stellen die übergebene Pipe benutzt, sondern immer die globale Output-Pipe.
Ookay, dass ist ungünstig Weil gerade ReadPipe sollte das verhindern. Was sind den weitere Probleme gewesen?

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#34
  Alt 14. Mär 2009, 00:52
Zitat von xZise:
...gerade ReadPipe sollte das verhindern.
Naja, aber nicht wenn die zu lesende Bytemenge aus einer Pipe kommt und dann aus einer anderen diese Anzahl gelesen wird. Dann steht das System, weil eben erst so viel Bytes wie angegeben gelesen werden, bevor ReadPipe wieder zurückkehrt.

Zitat von xZise:
Was sind den weitere Probleme gewesen?
Verschiedenes, habe alles korrigiert. Für genau Informationen empfehle ich KDiff, dann werden die Änderungen sichtbar.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#35
  Alt 14. Mär 2009, 10:33
Genau, dass hatte ich mir auch gedacht. Ich werde mal gucken in wie fern ich das noch weiter auslagern kann.

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#36
  Alt 14. Mär 2009, 17:20
Was hast du dir gedacht? Das eigentliche Problem sollte jetzt behoben sein. Mich würde eher mal interessieren, ob der besagte Fehler noch auftritt oder nicht. Darüber läßt du leider keine Informationen durchsickern, schade.
  Mit Zitat antworten Zitat
Benutzerbild von seim
seim
 
#37
  Alt 15. Apr 2009, 20:45
Im folgenden rede ich über ein paar Begriffe die ich zwar nicht ganz verstehe, aber zumind. weis was damit gemeint ist bzw. wie diese Wirken auch wenn ich sie nicht selbst programmieren kann ^.^


Also ist es möglich, dass in einem anderen Thread (<> Hauptthread) der Buffer, der auch im Event "Data available" verwendet wird die ganze Zeit an einen globalen String hinten angehängt wird?
Das wäre nämlich notwendig um die Antwort des Severs in seinem Programm verwenden zu können etwa so:

Delphi-Quellcode:
..
PLink.write_str('ls -l');

Sleep(200); //An dieser Stelle "friert" der Hauptthread ein und deshalb funktioniert das Event auch nicht, dass in diesem Fall die Variable "Answer" füllen würde

//.. Verarbeite Antwort
  Mit Zitat antworten Zitat
Benutzerbild von seim
seim
 
#38
  Alt 15. Apr 2009, 23:47
Hat da jmd schon ne Lösung zu? Also die Antwort vom Server zu bearbeiten?


In diesem Projekt gibts eine

procedure sshExecCommand(const Command : string); Dessen Antwort wird gut aufgenommen und in einer MemoBox ausgegeben. Allerdings ist die procedure zum Zeitpunkt der Antwort bereits zu ende und kann deshalb nicht verarbeitet werden.. Das Ziel ist es die Antwort zurückzugeben:

function sshExecCommand(const Command : string): TStringList; Jmd Vorschläge?


Wer's testen will müsste das neu compilen um die IP, Port, User und PW anzupassen (bitte nur in einer Testumgebung also auf keinen Fall mit root an nem 100Mbit Server einloggen )
Angehängte Dateien
Dateityp: zip ssh_lib_development_865.zip (436,5 KB, 70x aufgerufen)
  Mit Zitat antworten Zitat
WeissenbornC
 
#39
  Alt 20. Jul 2009, 12:14
Hi,

vielen Dank für die Komponente und die Verbesserungen von omata. Leider erhalte ich eine Speicher-Warnmeldung beim Beenden der Demo von Omata (s.A.)

Außerdem kann ich die neue Version der plinkremote nicht als Komponente in die Palette bekommen - Versuche ich, die neue Version der .pas über die alte zu schreiben und dann mit der .dkp zu kompilieren wird die Komponente aus der Palette entfernt.

Ich verwende Delphi 6 Prof. (Die PosEx habe ich bereits hinzugefügt, an der liegt es nicht )

Vielen Dank im voraus.

@seim: Falls das noch aktuell sein sollte, ich würde in einer schleife auf Antwort warten, etwa

Delphi-Quellcode:
repeat
 sleep(10);
 Application.ProcessMessages;
until gotReply OR Application.Terminated;
Bei mir habe ich das warten vorerst über einen Timer gelöst.

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
Miniaturansicht angehängter Grafiken
error_586.jpg  
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#40
  Alt 20. Jul 2009, 12:56
Ich weiss nicht was du da gemacht hast, aber in der Demo gibt es die Komponenten TObjectList, TWinHelpViewer und THelpManager gar nicht, dementsprechend weiss ich nicht wie diese Fehler in der Demo zu finden sein sollen.

Sorry, da kann ich nicht helfen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz