System.Win.ScktComp.TServerWinSocket.OnClientConnect
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.