Autor |
Beitrag |
ex4ct
      
Beiträge: 67
Delphi 7
|
Verfasst: Fr 14.04.06 00:40
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!
Einloggen, um Attachments anzusehen!
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: 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..
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
ex4ct 
      
Beiträge: 67
Delphi 7
|
Verfasst: 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.FTP.SendText('FTPAktivieren'); end;
procedure TForm1.Button44Click(Sender: TObject); begin IdFTP1.FTP.SendText('FTPDeaktivieren'); end; |
|
|
ex4ct 
      
Beiträge: 67
Delphi 7
|
Verfasst: 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
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: 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!!
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
ex4ct 
      
Beiträge: 67
Delphi 7
|
Verfasst: 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.
Zuletzt bearbeitet von ex4ct am Fr 14.04.06 11:05, insgesamt 1-mal bearbeitet
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: 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
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
ex4ct 
      
Beiträge: 67
Delphi 7
|
Verfasst: 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
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: Fr 14.04.06 11:09
Weil beide auf dem selben Port laufen  Hast du das schon geändert?
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
ex4ct 
      
Beiträge: 67
Delphi 7
|
Verfasst: Fr 14.04.06 11:11
Born-to-Frag hat folgendes geschrieben: | Weil beide auf dem selben Port laufen Hast du das schon geändert? |
Nein, der FTP Port ist 21.
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: Fr 14.04.06 11:11
beim TidFTPServer? Und beim TServerSocket?
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
ex4ct 
      
Beiträge: 67
Delphi 7
|
Verfasst: Fr 14.04.06 11:14
TidFTPServer port: 21
TServerSocket port: 1533
|
|
ex4ct 
      
Beiträge: 67
Delphi 7
|
Verfasst: Fr 14.04.06 12:03
PROBLEM GELÖST!!  
|
|