Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Clientsoccket wird nicht Active.... (https://www.delphipraxis.net/26986-clientsoccket-wird-nicht-active.html)

m0sch3r 2. Aug 2004 13:36


Clientsoccket wird nicht Active....
 
Tach....

folgendes Problemm...
zur Laufzeit des programms wird die ClientSocket Eingenschaft "Active" jeweils auf True und False gesetzt,
beim setzen der Eingenschaft auf true und nachkommenden
Prufung ist sie jedoch False....!!!!!

Delphi-Quellcode:
     result := true;
     form1.ClientSocket1.Address := SERVER_IP;
     form1.Debug_Memo.Lines.Add('Try to connect to the new Server '+ SERVER_IP +formatDateTime('hh:nn:ss:', now));

     try
     form1.ClientSocket1.Active := true;
     except
     form1.Debug_Memo.Lines.Add('Error while connecting '+ server_ip+ ' ' +formatDateTime('hh:nn:ss:', now));
     end; //TRY
     if not form1.ClientSocket1.Active then
        begin
        form1.Debug_Memo.Lines.Add('Sorry nobody at home at :)'+ server_ip+ ' ' +formatDateTime('hh:nn:ss:', now));
        result := false;
        end;
auf der Gegenseite (auf dem Server) werden aber die Ereignisse OnClientConnect und OmAccept ausgelöst..

beim Versuch daten vom Client zum Server zuschicken passiert nichts...
ip und port sind jeweils eingestellt auf beiden Seiten....

mischerr 2. Aug 2004 19:01

Re: Clientsoccket wird nicht Active....
 
F1! F1! :coder2: Dazu schreibt die Delphi-Hilfe...

Zitat:

Zur Entwurfszeit setzen Sie Active auf True, damit der Socket beim Start der Anwendung eine Verbindung öffnet. Zur Laufzeit verwenden Sie zum Öffnen und Schließen der Verbindung die Methoden Open und Close.
:zwinker:

Grüsse!

Muetze1 2. Aug 2004 20:16

Re: Clientsoccket wird nicht Active....
 
Moin!

Das macht nix - wenn man sich den Code der beiden Komponenten mal anschaut:

Delphi-Quellcode:
procedure TAbstractSocket.Open;
begin
  Active := True;
end;

procedure TAbstractSocket.Close;
begin
  Active := False;
end;
Grundlegend sind aber 2 Gedankenfehler in dem o.g. Code:

1. Das Try/Except ist soweit unnütz, da der Socket mit einem Thread arbeitet und daher die Fehler asynchron zu den Methoden auftreten - nutze das OnError Ereignis statt dessen.
2. Wenn du Active auf True setzt, dann macht er das aus dem in 1. genannten Grund nicht sofort und daher kannst du nicht zwei Befehle später nachfragen ob der Socket aktiv ist.

MfG
Muetze1


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