kann mir bitte jemand, der schon nen
ftp server gemacht hat, sagen, wie er sowas gemacht hat?
ich hier schon mehrere wege gemacht.
als letztes wollt ich dem thread info anhaengen, jedes mal, wenn er was macht, den gettickcount timestamp neu setzen, und in nem interval diesen von jedem aktiven thread mit dem aktuellen system gettickcount vegleichen.
das is alles schoen und gut, aber dann ist mir aufgefallen, dass ich net rausfinden kann, ob gerade ein thread idle-t oder was tut, weil wenn er gerade ne grosse file uebertraegt, dann wuerde er ja den timeout erreichen und ich wuerde ihn killen.
dann hab ich vorgenommen ein extra listing zu machen, mit den threadID-s, die gerade nen transfer am laufen haben.
dabei bin ich gescheitert, weil ich diese net wieder rausholen konnte, weil ich, nachdem ich ein idconnection intercept eingebaut hab, da kein onworkbegin/end hatte, sondern nur onreceive onsend.
somit waeren diese threads fuer immer in der liste gelieben.
ausser ich mach so:
ich setz ihn, wenn er die file aufruft, auf die liste und lass ihn oben, bis er wirklich was macht.
dann setze ich erst den timestamp neu und nehme ihn aus der liste raus.
inzwischen vergleiche ich im selben timerinterval, in dem ich auch die timestamps vergleiche, ob wohl alle ThreadID-s aus meiner liste noch immer im idftpserver1.threads.activethreads.locklist.items[*] sind sind.
was ganze hoert sich als geloest an, aber der scheiss dabei ist, dass ich den user net kicke, wenn er runter geladen hat ne liste an files, ohne nach jedem download den directory gelistet zu haben und nun am ende auch nur idelt, ohne listing...... dann warte ich naemlich, bis er selbst entweder was getan hat, oder die verbindung selbst beendet hat.
kann mir wer damit helfen?
(ich werd noch die sache aufm delphi-forum.de schildern, in der hoffnung, das es mehr leute lesen, weil ich heute fertig werden will. ich hoffe, nach paar stunden schlaf hat das wer gelesen
ich werd die threads bei loesung natuerlich synchronizieren.)
tnx.