Entwickler-Ecke

Internet / Netzwerk - merkwürdiger fehler beim indy !


matze - Di 28.10.03 10:00
Titel: merkwürdiger fehler beim indy !
ich habe folgenden code in meinem indy TCPserver execute:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
         if pos ('login:',remotecmd) = 1 then begin
            if loginbutton.Enabled = true then begin
               tempstr := (copy(remotecmd,8,Length(remotecmd)));
               useredit1.Text  := gettoken (tempstr,'|',1);
               passedit1.text  := gettoken (tempstr,'|',2);
               LogInButtonClick (self);
               writeLn ( 'User wurde eingeloggt.' );
            end else begin
                writeLn ( 'Schon ein User eingeloggt.' );
            end;
         end;

so, wenn das in dem execute des servers ausgeführt wird, weil ein client so eine anfrage gestellt ha, dann wir die login button routine nur teilweise ausgeführt. das sieht so aus, als ob das programm einfach mal ein paar zeilen in der ausführung vergisst.

kann das sein, weil indy ja das execute ereignis in einem threat ausführt ??
wenn ja: wie müsste der code denn dann lauten ?

danke für die hilfe !


MrSaint - Di 28.10.03 15:20

bis wohin wird denn der Code ausgeführt?


MrSaint


matze - Di 28.10.03 20:25

ja das ist ja das paradoxe. in der loginbutton klick werden z.b. netzlaufwerke verbunden und die form caption verändert. manchmal wird die geändert machmal nicht und die netzlaufwerke werden gar nicht verbunden !

muss ich das denn irgendwie syncronisieren ??

ich hab allerdings in den indy demos noch nie ein synchronize gesehen !


MrSaint - Mi 29.10.03 11:11

und was hat das jetzt mit dem OnExecute zu tun? Bin ich da irgendwie zu blöd für?


MrSaint


matze - Mi 29.10.03 13:52

na der codeschnipsel, den ich oben geopstet hab wird im onexecute ereignis des INDY TCP servers ausgeführt, sprich wenn ein client einen befehl sendet.