Avatar billede mulle_hansen Nybegynder
25. februar 2002 - 18:07 Der er 12 kommentarer og
1 løsning

Dynamisk tids-check

Jeg har nogle connections, som der skal laves et check på hver 2 minut - det er også ok, men problemet er, at disse connections pludselig kommer og går, dvs hver gang en connecter, skal der oprettes en timer, der foretager et check hver 2 minut på nogle databaser...

Jeg mener jeg skal bruge en ObjectList... Eller hvad?
Avatar billede martinlind Nybegynder
25. februar 2002 - 19:19 #1
Har du ikke en Connections liste på din ServerSocket du kan løbe i gennem, evt. fra en Timer ( OnTimeEvent )

/Martin
Avatar billede mulle_hansen Nybegynder
25. februar 2002 - 19:32 #2
Jeg bruger UDP-packets, så ideen er, at klienten sender en KeepAlive hvert minut... Fra der er sendt en KeepAlive går der så to minutter, og er der ikke afsendt en ny KeepAlive fra klienten, betragtes den som offline...
Avatar billede mulle_hansen Nybegynder
25. februar 2002 - 19:33 #3
Derfor skal jeg have en timer der starter når jeg modtager en KeepAlive og resettes hver gang jeg modtager en ny...
Så der skal en timer til hver bruger? Eller hvad? Jeg kan logge deres keepAlive i en database, og så evt. hver 2. minut chekke helle databasen igennem for nogle, hvis KeepAlive er over 2 minutter gammel?
Avatar billede martinlind Nybegynder
25. februar 2002 - 19:38 #4
Med mindre du skal ha' en masse timere kørende, skulle du nok over veje at "sync" dit check til hver 2 minut. så er der nogle der bliver checket lidt for hurtigt, men den kan du vel godt leve med, men ville det ikke være federe at køre i en eller anden form for liste ( StringList/ObjectList ) evt. en stringList addObject(socket.RemoteIP,Socket) så kan du bruge IndexOf() på IP-adr.
DB brug bliver for sløvt

/Martin
Avatar billede mulle_hansen Nybegynder
25. februar 2002 - 22:19 #5
Okai - hvis vi bruger f.eks. en listBox der indeholder tidsstempler (dato/tid), hvordan kan jeg så chekke om deres timestamp i listBoxen er mere end 2 minutter gamle?
Avatar billede martinlind Nybegynder
25. februar 2002 - 22:43 #6
Du skal nogle af de mange rutiner der er i online hjælpen under "date/time routines", SameTime(), CompareDateTime(const A, B: TDateTime): TValueRelationship;

/Martin
Avatar billede mulle_hansen Nybegynder
25. februar 2002 - 22:49 #7
Jeg kan ikke rigtig finde dem i Delphi?
Avatar billede martinlind Nybegynder
25. februar 2002 - 22:51 #8
Hvad version har du ?? Jeg har D6 unit'et hedder DateUtils

Takker for point

/Martin
Avatar billede mulle_hansen Nybegynder
25. februar 2002 - 22:56 #9
D5... kigger lige - den er der ikke.. :(
Avatar billede mulle_hansen Nybegynder
25. februar 2002 - 22:59 #10
Avatar billede martinlind Nybegynder
25. februar 2002 - 23:06 #11
Avatar billede mulle_hansen Nybegynder
25. februar 2002 - 23:21 #12
Den virker desværre ikke med delphi 5, men tak for hjælpen..
Avatar billede martinlind Nybegynder
25. februar 2002 - 23:27 #13
Men så kan du stjæle de rutiner du skal bruge.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester