Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: IdTCPServer Threadproblem

  Alt 24. Aug 2007, 11:53
Hi Nakaron,

ich konnte leider beim ersten drüber schauen keinen Fehler finden.
Allerdings kann ich Dir sagen das ich bei Delphi 2007 + Indy10 NICHT
diese Probleme habe.

Bei mir sieht die Struktur zwar etwas anders aus, aber vom Prinzip genau der gleiche Ablauf,
nur das ich die Verification des Clients schon im OnConnect Ereignis behandle und nur
ein TClient Object erzeuge wenn die Anmeldung/verifizierung erfolgreich war.

Bei Deiner Lösung wird ja bei jedem Port-Scan ein Client Object erzeugt ...

Ich schaue nachher aber nochmal genauer über Deinen Code,

*Edit*

Denke habe die Ursache gefunden, Dein Client schickt nie ein "Disconnect/QUIT" Commando zum Server !
Somit kann der Server gar nicht feststellen, wann der Client sich disconnecten will.

Mache bitte mal folgendes :
- Dein ganzes Handling für die Client-Verifizierung bitte in das OnConnect !
- Wenn beim OnConnect kein gültiges Login gesendet wird, die Connection sofort wieder schliessen
- Erst nach erfolgreicher Anmeldung TClient erzeugen und in .Data ablegen

- Im OnExecute nut Commandos behandeln die nach dem Login erfolgen,
aber dort muss es auf jeden Fall ein Kommando wie z.B. "QUIT" geben,
wenn der SErver dieses Commando vom Client erhält muss er die Connection schliessen

- Im OnDisconnect musst Du prüfen, ob im .Data Daten vorhanden sind
If Assigned(....Data) then begin
- ansonsten .Data = nil war es nur ein Port-Scan

Greetz DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat