Entwickler-Ecke
Internet / Netzwerk - Kleines Problem mit TIdFTPServer (Indy)
ex4ct - Fr 14.04.06 00:40
Titel: Kleines Problem mit TIdFTPServer (Indy)
Ich hab mal wieder ein kleines Problem :-(
Ich verwende in meiner Server.exe den Komponenten TServerSocket.
Damit funktioniert alles also ich kan vom Clienten an den Server ohne Probleme Befehle senden.
Jetzt habe ich einen FTP-Server programmiert (funktioniert ohne Probleme).
Dafür habe ich den Komponenten von Indy benutzt.
Ich wollte diesen FTP-Server in den anderen Server(TServerSocket) einbauen,
aber da kommt eine Fehlermeldung bei mir (kompiliert richtig,Fehler kommt beim ausführen).
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, MMSYSTEM, StdCtrls, ExtCtrls, ShellApi,Registry,WinInet, OleCtrls, SHDocVw, IdBaseComponent, IdComponent, IdTCPServer, IdFTPServer;
....
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var myString: String; buff : array[0..MAX_COMPUTERNAME_LENGTH] of char; nsize : DWORD; rc : hwnd;
begin nsize := SizeOf(buff); myString := Socket.ReceiveText;
..... ... .. else if MyString = 'FTPaktivieren' then IdFTPServer.Active := true else if MyString = 'FTPdeaktivieren' then IdFTPServer.Active := false ...... .. end; |
Als Fehlermeldung kommt dies:
Im Projekt Project.exe ist eine Exeption der Klasse ESocketError aufgetreten. Meldung:
"Windows Socket Fehler: Normalerweise darf jede Socketadresse nur jeweils einmal verwendet werden (10048), auf API "bind". Prozess wurde angehalten.
Mit einzelne Anweisung oder Start fortsezten.
Screenshot hab ich auch hochgeladen!
Born-to-Frag - Fr 14.04.06 01:02
Du startest 2 Server auf den gleichen Port.. oder versuchst es zumindest ;)
Du musst natürlich andere Ports nehmen..
ex4ct - Fr 14.04.06 09:37
Wie soll ich vom FTP Clienten einen Text an den Server senden?
So hab ich es versucht aber geht nicht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button43Click(Sender: TObject); begin IdFTP1.http://FTP.SendText('FTPAktivieren'); end;
procedure TForm1.Button44Click(Sender: TObject); begin IdFTP1.http://FTP.SendText('FTPDeaktivieren'); end; |
ex4ct - Fr 14.04.06 09:43
Geht das eigentlich, kann man den FTP-Server über den FTP-Clienten öffnen und schließen??
Bestimmt oder??
Born-to-Frag - Fr 14.04.06 10:45
Das geht schon, aktivieren musst du aber dann an einen nanderen Server schicken (machst du ja glaub ich auch), aber die Ports müssen sich unterscheiden!!
ex4ct - Fr 14.04.06 11:02
Born-to-Frag hat folgendes geschrieben: |
Das geht schon, aktivieren musst du aber dann an einen nanderen Server schicken (machst du ja glaub ich auch), aber die Ports müssen sich unterscheiden!! |
Ich habe mein Fehler gefunden. Ich muss den FTP-Server mit einem Befehl von dem FTP-Clienten aktivieren, leider weiß ich nicht wie das geht.
Bei dem TClientSocket Komponenten geht das ja so hier:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Button40Click(Sender: TObject); begin clientsocket1.socket.sendtext('aufrufen'); end; |
'aufrufen' kann dann beim Server bearbeitet werden.
Born-to-Frag - Fr 14.04.06 11:05
Das geht garnicht, du musst schon mit deinem TClientSocket eine Nachriccht an deinen TServerSocket schicken. Wenn der FTP Server nicht aktiviert ist empfängt er ja auch keine Nachrichten
ex4ct - Fr 14.04.06 11:07
Born-to-Frag hat folgendes geschrieben: |
Das geht garnicht, du musst schon mit deinem TClientSocket eine Nachriccht an deinen TServerSocket schicken. Wenn der FTP Server nicht aktiviert ist empfängt er ja auch keine Nachrichten |
Das würde ja eigentlich gehen aber am Anfang habe ich genau das versucht was du geschrieben hast, aber da kam ja diese fehlermeldung.
---> Hab dir eine PN geschickt!
Born-to-Frag - Fr 14.04.06 11:09
Weil beide auf dem selben Port laufen :roll: Hast du das schon geändert?
ex4ct - Fr 14.04.06 11:11
Born-to-Frag hat folgendes geschrieben: |
Weil beide auf dem selben Port laufen :roll: Hast du das schon geändert? |
Nein, der FTP Port ist 21.
Born-to-Frag - Fr 14.04.06 11:11
beim TidFTPServer? Und beim TServerSocket?
ex4ct - Fr 14.04.06 11:14
TidFTPServer port: 21
TServerSocket port: 1533
ex4ct - Fr 14.04.06 12:03
PROBLEM GELÖST!! :D:D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!