System.Win.ScktComp.TServerWinSocket.OnClientConnect

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

property OnClientConnect: TSocketNotifyEvent read FOnClientConnect write FOnClientConnect;

C++

__property TSocketNotifyEvent OnClientConnect = {read=FOnClientConnect, write=FOnClientConnect};

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
event public
System.Win.ScktComp.pas
System.Win.ScktComp.hpp
System.Win.ScktComp TServerWinSocket

Beschreibung

Wird ausgelöst, wenn ein Client-Socket eine vom empfangenden Socket akzeptierte Verbindung vervollständigt.

In einer Ereignisbehandlungsroutine für OnClientConnect können Sie Aktionen festlegen, die ausgeführt werden, sobald ein Client-Socket die Socket-Verbindung zu einem TServerClientWinSocket-Objekt vervollständigt. Abhängig vom verwendeten Dienst ist dies der Zeitpunkt, an dem der Socket mit dem Lesen bzw. Schreiben beginnen soll.

Die Reihenfolge der Server-Socket-Ereignisse bis hin zu OnClientConnect ist folgende:

1. Bevor der Windows-Socket für den Empfang geöffnet wird, tritt das Ereignis OnSocketEvent vom Typ seListen ein.

2. Der empfangende Windows-Socket empfängt Client-Anforderungen in einer Warteschlange. Er akzeptiert eine dieser Anforderungen und erhält ein Windows-Socket-Handle für die neue Socket-Verbindung.

3. Der empfangende Socket erzeugt das Ereignis OnGetSocket und übergibt ihm das Windows-Socket-Handle. Wenn in der Ereignisbehandlungsroutine für OnGetSocket kein TServerClientWinSocket-Objekt erzeugt wurde, wird es vom Windows-Socket generiert. Der Windows-Socket empfängt weiterhin andere Clients.

4. Das Ereignis OnSocketEvent vom Typ seAccept tritt ein und verwendet das neue TServerClientWinSocket-Objekt.

5. Wenn ServerType den Wert stThreadBlocking hat und im Zwischenspeicher kein Thread zur Verfügung steht, tritt das Ereignis OnGetThread ein. Generiert die Ereignisbehandlungsroutine für OnGetThread keinen Thread, erzeugt das Windows-Socket-Objekt ein TServerClientThread-Objekt.

6. Wenn ServerType den Wert stThreadBlocking hat, tritt das Ereignis OnThreadStart ein, wenn der Thread mit der Ausführung beginnt.

7. Der Client vervollständigt die Verbindung zum TServerClientWinSocket-Objekt. Danach tritt das Ereignis OnClientConnect ein.

Der Parameter Sender ist das TServerWinClient-Objekt, das die Client-Anforderung empfängt. Der Parameter Socket ist das TServerClientWinSocket-Objekt, das eine Verbindung zum Client-Socket bildet.

Anmerkung:  Hat ServerType den Wert stThreadBlocking, müssen Sie sicherstellen, dass der gesamte Code in der Ereignisbehandlungsroutine für OnClientConnect thread-sicher ist. Mithilfe der Methode GetClientThread können Sie Informationen über den Thread abfragen.

Anmerkung:  Zusammen mit der Behandlungsroutine für das Ereignis OnClientConnect von TServerWinSocket wird die Behandlungsroutine für das Ereignis OnClientConnect des zugehörigen TServerSocket-Objekts zugewiesen.

Siehe auch