Autor Beitrag
ex4ct
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: 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).

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: Fr 14.04.06 11:02 
user profile iconBorn-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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: Fr 14.04.06 11:07 
user profile iconBorn-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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Fr 14.04.06 11:09 
Weil beide auf dem selben Port laufen :roll: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: Fr 14.04.06 11:11 
user profile iconBorn-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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: Fr 14.04.06 11:14 
TidFTPServer port: 21
TServerSocket port: 1533
ex4ct Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: Fr 14.04.06 12:03 
PROBLEM GELÖST!! :D:D