Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi clientsocket.open dauert zu lang? (https://www.delphipraxis.net/16261-clientsocket-open-dauert-zu-lang.html)

lkz633 13. Feb 2004 19:03


clientsocket.open dauert zu lang?
 
Hallo,

ich habe folgenden code:

Code:
procedure Tfmain.SpeedButton1Click(Sender: TObject);
begin
  if not ClientSocket.Active then begin
    ClientSocket.Open;
    ListBox1.Lines.Add(DateTimeToStr(now)+': '+'Anforderung an Server gesendet');
    clientsocket.Socket.SendText(edt_user.Text+','+edt_password.Text);
  end
  else begin
    ListBox1.Lines.Add(DateTimeToStr(now)+': '+'Anforderung an Server gesendet');
    clientsocket.Socket.SendText(edt_user.Text+','+edt_password.Text);
  end;
end;
Ich habe das Problem, das dass aller erste Mal der Text nie beim Server ankommt, d.h der text der direkt nach dem Open gesendet wird, danach klappt diese Funktion. Füge ich das Open z.B im Formcreate ein, klappt es einwandfrei.

Ich kann die Verbindung aber erst dann aufbauen und muss dann auch direkt den String senden. Wie bekomme ich das hin?
Auch ein eingebautetes Sleep hat nicht geholfen :cry:

Irgendwelche Ideen oder Lösungen?

Dank und Gruss
lkz633

Pseudemys Nelsoni 13. Feb 2004 19:49

Re: clientsocket.open dauert zu lang?
 
das kommt daher, weil der socket noch nicht connectet ist.

clentsocket1.Open <<< das heisst nicht das der socket connectet ist, sondern eben das er sie öffnet
clientsocket.Socket.SendText(edt_user.Text+','+edt _password.Text); <<< der text kommt wohl beim 1.mal nicht an weil er eben noch nicht verbunden ist

guck mal bei den events. Da gibt es eins das heisst OnConnect << da muss du es reinmachen


btw: mach den button einfach enabled := false; und im OnConnect machst du wieder True

Bobator 13. Feb 2004 21:01

Re: clientsocket.open dauert zu lang?
 
Delphi-Quellcode:
procedure Tfmain.SpeedButton1Click(Sender: TObject);
begin
  if not ClientSocket.Active then begin
    ClientSocket.Active:=true; // damit müsste es gehen! vorher die address bei den propertys eingeben!
    ListBox1.Lines.Add(DateTimeToStr(now)+': '+'Anforderung an Server gesendet');
    clientsocket.Socket.SendText(edt_user.Text+','+edt_password.Text);
  end
  else begin
    ListBox1.Lines.Add(DateTimeToStr(now)+': '+'Anforderung an Server gesendet');
    clientsocket.Socket.SendText(edt_user.Text+','+edt_password.Text);
  end;
end;

lkz633 14. Feb 2004 10:37

Re: clientsocket.open dauert zu lang?
 
Habe es jetzt im onconnect, danke für alle die geholfen haben

Gruss lkz633


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