Windows Sockets: Ableiten von Socket-Classen
Dieser Artikel beschreibt einige der Funktionen, die Sie erhalten, indem Sie die eigene Klasse von einer der Socketklassen berechnen.
Sie können eigene Socketklassen in CAsyncSocket oder von CSocket ableiten, um die eigene Funktionen hinzuzufügen. Insbesondere können diese Klassen verschiedene virtuelle Memberfunktionen, die Sie überschreiben können. Diese Funktionen enthalten OnReceive, OnSend, OnAccept, OnConnect und OnClose. Sie können die Funktionen in der abgeleiteten Socketklasse überschreiben, um die entsprechenden Benachrichtigungen zu nutzen, die sie bereitstellen, wenn Netzwerkereignisse auftreten. Das Framework ruft diese Benachrichtigungsrückruffunktionen auf, um Sie über wichtige Socketereignissen, wie dem Empfang der Daten zu benachrichtigen, die Sie lesen beginnen können. Weitere Informationen über Benachrichtigungsfunktionen, finden Sie unter Windows Sockets: Socket-Benachrichtigungen.
Außerdem stellt Klasse CSocket die OnMessagePending-Memberfunktion (ein erweitertes schreibbares). MFC ruft diese Funktion auf, wenn der Socket Windows-basierte Meldungen weiterleitet. Sie können OnMessagePending überschreiben, um nach bestimmten Meldungen von Windows zu finden und auf diese reagieren.
Die Standardversion von OnMessagePending des in der Klasse, die CSocket, für die Meldungswarteschlange WM_PAINT Meldungen während des Wartens auf einen blockierenden Aufruf, indem es überprüft. Sie leitet Zeichenmeldungen weiter, um Anzeigenqualität zu verbessern. Neben der Möglichkeit nützliches einige, wird dies veranschaulicht eine Möglichkeit, die u sich die Funktion überschrieben. Ein weiteres Beispiel sollten Sie die Verwendung von OnMessagePending für die folgende Aufgabe. Angenommen, Sie ein nicht modales Dialogfeld beim Warten auf eine Netzwerktransaktion anzuzeigen, indem es. Das Dialogfeld enthält eine Schaltfläche Abbrechen, die der Benutzer verwenden kann, um zu Transaktionen abzubrechen, die zu lang dauert. Ihre OnMessagePending Überschreibung pumpte möglicherweise die Meldungen, die an diesem nicht modalen Dialogfeld beziehen.
In der Überschreibung OnMessagePending geben Sie TRUE oder der Rückgabe aus einem Aufruf an die Basisklassenversion von OnMessagePending zurück. Rufen Sie die Basisklassenversion aufgelistet, wenn die Arbeit ausführt, die Sie noch fertiges soll.
Weitere Informationen finden Sie unter: