AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Serversocket wie Clients Unterscheiden ?

Ein Thema von Real_Thunder · begonnen am 13. Mai 2006 · letzter Beitrag vom 17. Mai 2006
Antwort Antwort
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#1

Re: Serversocket wie Clients Unterscheiden ?

  Alt 13. Mai 2006, 11:11
Also ich habs in etwa so gemacht.

Bischen Bastelcode: Auszug!!

Und Teile meines Projects...

Delphi-Quellcode:

const
      MaxAnzCon=100;


Type
     TAInt=array[0..MaxAnzCon] of Integer;


 Type
     TClientenverwaltung=record
     Con : TAInt; // Socketnummer
     HNr : TAInt; // dazugehörige Handlenummer
     isOnline :array [0..MaxAnzCon] of boolean; // ist er auch noch online
     end;


.....
CV:TClientenverwaltung;


// CV ( Clientverwaltung) Array mit Anfangswerten beschreiben
procedure TNet7Server.Init;
(* -------------------------------------------------------------------------- *)
var
i: Integer;
begin
      
    // Serverliste mit Wert -1 füllen
    for i := 0 to MaxAnzCon do
      begin
          cv.Con[i] := -1;
          cv.HNr[i] := -1;
          cv.isOnline[i] := false;
     end;

end;

//Clienten in Liste aufnehem bei Event ClientonConnect funktionsfähig
procedure TNet7Server.ClientOnList;
(* -------------------------------------------------------------------------- *)
var
LZaehler: Integer;
begin
       LZaehler := 0;
            //zähle solange hoch bis du einen freien Paltz (-1) in der Liste findes
            while cv.HNr[LZaehler] > -1 do
              begin
                    inc(LZaehler);
               end;


                 cv.HNr[LZaehler] := socket.Connections[socket.ActiveConnections-1].Handle;
                 cv.isOnline[LZaehler] := true;
                 cv.Con[LZaehler] := socket.ActiveConnections-1;

                
                
end;
Ich hoffe der Code hilft dir weiter, die Überwachung ob der Client Online ist bzw seine Löschung geb ich dir noch nicht... "Sebst ist der Mann" aber wenn du da irgendwie hängenbleibst geb ich dir gerne wieder Tipps

Über den Aufruf des Records also cv[x].bla hast du die Socketnummer, die Handlenummer und umgekehrt...


mfg Net7

// Edit: Einen Stolperstein möchte ich ich dir noch ersparen.

Bedenke!!!!!
Sobald ein Client offline geht rutscht die Socketnummer einen Wert tiefer und die gespeicherte Handlenummer im Record stimmt mit der Socketnummer im Record nicht mehr überein.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz