Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi FTP-Server (indy) (https://www.delphipraxis.net/29867-ftp-server-indy.html)

Kreilon 15. Sep 2004 19:41


FTP-Server (indy)
 
Volgender Code: (Gerade alles in einem geschrieben, der Übersicht halber),

procedure TForm1.Button1Click(Sender: TObject);
begin
idFTPServer1.DefaultPort:=21;
idFTPServer1.AllowAnonymousLogin:=true;
idFTPServer1.Active:=true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
idftpserver1.Active:=false;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
idftp1.Host:='192.168.0.3';
idftp1.Port:=21;
idftp1.Connect;
Edit1.Text:=idftp1.ReadLn;
end;

procedure TForm1.IdFTPServer1Execute(AThread: TIdPeerThread);
begin
with Athread.Connection do
begin
Writeln('Connected');
end;
end;

end.

Was mach ich falsch (funktioniert nicht)? Einmal habe ich es noch versucht in dem ich bei Button2Click folgendes einsetzte:
idftp1.Username:='weiss';
idftp1.Password:='weiss';
idftp1.Login;
Aber dann wusste ich wiederum nicht mehr, wie ich beim Server (Button1Click) den Account erstellen muss.
Im Internet gibt es irgenwie auch keine richtige Hilfe. Das indy FTP-Beispiel ist einfach zu kompliziert (für jemand wie mich).

alcaeus 15. Sep 2004 20:01

Re: FTP-Server (indy)
 
Hi Kreilon,

erstmal herzlich willkommen in der DP :hi: :dp:

Bitte verwende die [delphi]-Tags, um den Code lesbarer zu machen. Dann funktioniert auch das einrücken mit Leerzeichen, und man kann sich den Code ansehn :zwinker:

Greetz
alcaeus

Kreilon 15. Sep 2004 22:01

Re: FTP-Server (indy)
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdMappedPortTCP,
  StdCtrls, IdFTPServer, IdTCPConnection, IdTCPClient, IdFTP,
  IdUserAccounts;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    IdFTPServer1: TIdFTPServer;
    Button2: TButton;
    IdFTP1: TIdFTP;
    Button3: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure IdFTPServer1Execute(AThread: TIdPeerThread);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  begin
    idFTPServer1.DefaultPort:=21;
    idFTPServer1.AllowAnonymousLogin:=true;
    idFTPServer1.Active:=true;
  end;

procedure TForm1.Button3Click(Sender: TObject);
  begin
    idftpserver1.Active:=false;
  end;

procedure TForm1.Button2Click(Sender: TObject);
  begin
    idftp1.Host:='192.168.0.3';
    idftp1.Port:=21;
    idftp1.Connect;
    //idftp1.Username:='weiss';
    //idftp1.Password:='weiss';
    //idftp1.Login;
    Edit1.Text:=idftp1.ReadLn;
  end;

procedure TForm1.IdFTPServer1Execute(AThread: TIdPeerThread);
  begin
    with Athread.Connection do
      begin
        Writeln('Connected');
      end;
  end;

end.
Ok. Hier der lesbare. :)

SirThornberry 15. Sep 2004 22:40

Re: FTP-Server (indy)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du schreibst das es nicht funktioniert. Was funktioniert nicht? Kommt eine Fehlermeldung?
desweiteren schreibst du
Zitat:

Aber dann wusste ich wiederum nicht mehr, wie ich beim Server (Button1Click) den Account erstellen muss
Du musst einfach nur die Events des Servers belegen und entsprechend handeln. Im Anhang mal nen kleines Beispiel für einen FTP-Server (der nicht voll funktionsfähig ist sondern nur das Handling zeigt). Einen ausführlichen FTP-Server findest du über die Suche. Um deinen source des Clients zu testen solltest du außerdem versuchen zu einem externen Server zu verbinden um den Fehler eingrenzen zu können (obs an server oder am client liegt) und um den Server zu testen solltest du ein funktionierenden Client nutzen auch wieder um fehler eher zu finden sonst weißt du nie obs am server oder am client liegt wenn etwas nicht geht außer du debugst alles durch und verstehst das client-server-prinzip auch

Kreilon 16. Sep 2004 17:43

Re: FTP-Server (indy)
 
Der Server funktioniert jetzt. Jedoch kann ich mich nicht einlogen mit dem Clienten. Username: weiss, Passwort: weiss. Wie folgt wird sich versucht einzulocken auf dem Server:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
  begin
   idftp1.Port:=21;
   IdFTP1.Username:=weiss;
   IdFTP1.Password:=weiss;
   IdFTP1.Host:='IP-Zensur';
   IdFTP1.connect;
   Edit1.Text:=idftp1.ReadLn;
  end;
Folgende Fehlermeldung wird gemolden: "Adresse ist bereits in Gebrauch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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