Hi.
Ich habe folgende Frage zum TCPServer von
Indy 10:
Wenn ein Client die Verbindung beendet wird ja vom
Indy Server das OnDisconenct Event geworfen.
In diesem Event erhält man als Übergabewert die TidContext Klasse. In der steht ja welcher Client sich beendet hat (die Portnummer).
Wie kann ich meinem Programm nun mitteilen welcher Client sich beendet hat?
Im Eventhandeler des OnDisconenct Events muss ich das Event an eine andere
Unit (Klasse) weiterreichen.
Diesem Event möchte ich nun die Portnummer des Clients mitgeben.
Aber da das OnDisconnect-Event bei
Indy aus einem Thread geworfen wird kann ich das Event nur synchronisiert werfen (kann also keine Werte mitgeben).
Nun könnte ich die Portnummer ja einfach in einer Klassenvariablen speichern, über die Klasse von
Indy (TIdNotify) synchronisert eine Hilfsmethode aufrufen, und in der dann das Event an die andere
Unit werfen (und die Portnummer mitgeben).
Funktioniert soweit auch, aber: wenn sich viele Clients auf einmal beenden kann ich die OnDisconenct Events nicht so schnell abarbeiten.
Die Klassenvarialbe würde also überschrieben bevor ich mit ihr arbeiten kann.
Gibt es da eine vernünftige Lösung?