Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#3

Re: ServerSocket: ActiveConnections stimmt nicht immer

  Alt 4. Feb 2007, 19:45
Hallo,

Abgefragt wird in einem Timer:
Delphi-Quellcode:
procedure TMainForm.Timer_ConnectionTimer(Sender: TObject);
var
  Anzahl_Verbindungen: Integer;

begin
  //Timer disablen
  Timer_Connection.Enabled := false;

  //Variable beschreiben
  Anzahl_Verbindungen := ServerSocket.Socket.ActiveConnections;

  //Ist aktuelle Anzahl ungleich der alten Anzahl...?
  If (Anzahl_Verbindungen <> alte_Anzahl_Verbindungen) then
    begin
      //Label beschreiben
      Label_Anzahl_Verbindungen.Caption := IntToStr(Anzahl_Verbindungen);

      //Listbox leeren
      ListView_Client_Dateien.Clear;

      //Label leeren
      Label_Client_IP.Caption := '';

      //ComboBox-Einträge aufbauen
      ComboBox_schreiben(Default_Client_S, false);

      //ausgewählten Client zurücksetzen
      ausgewaehlter_Client := -1;

      If Anzahl_Verbindungen = 0 then
        begin
          //enablen
          EnDisableComponents(true);

          //Timer disablen
          Timer_Ueberwachung.Enabled := false;

          //Label beschreiben
          Label_Verbindung_Info.Caption := 'keine Verbindung vorhanden!';
        end
      else
        begin
          //Label beschreiben
          Label_Verbindung_Info.Caption := 'Verbindung wurde aufgebaut!';
        end;

      //Variable beschreiben
      alte_Anzahl_Verbindungen := Anzahl_Verbindungen;
    end;

  //Timer enablen
  Timer_Connection.Enabled := true;
end;
Der Timer läuft immer.

in OnDisconnect konnte ich es damals nicht machen, da OnDisconnect - sofern ich es noch im Kopf habe - nur ausgelöst wird, wenn kein Client mehr verbunden ist - sind es aber mehrere Clients, von denen sich einer abmeldet - wird onDisconnect nicht ausgelöst
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat