Freigeben über


Windows Sockets: Ableiten von Socket-Klassen

In diesem Artikel werden einige der Funktionen, die Sie erhalten können, indem Sie eine eigene Klasse von einer der Socket Klassen ableiten.

Sie können eigene Klassen der Socket in CAsyncSocket oder CSocket abgeleitet werden, um eigene Funktionen hinzuzufügen.Insbesondere stellen diese Klassen mehrere virtuelle Memberfunktionen, die Sie überschreiben können.Diese Funktionen umfassen OnReceive, OnSend, OnAccept, OnConnect und OnClose.Sie können die Funktionen in der Socket abgeleiteten Klasse überschreiben, um die Benachrichtigungen zu nutzen, die angeben, wann Netzwerk von Ereignissen auftreten.Das Framework ruft diese Benachrichtigung rückruffunktionen an, um zu wichtigen Ereignissen Socket, z. B. den Eingang von Daten zu benachrichtigen, mit denen Sie Lesevorgang beginnen können.Weitere Informationen über Benachrichtigungsfunktionen finden Sie unter Windows-Sockets: Socket-Benachrichtigungen.

Darüber hinaus stellt die Klassen CSocket-Memberfunktion OnMessagePending ein erweitertes (Overridable).MFC ruft diese Funktion auf, wenn der Socket Windows-basierte Nachrichten weiterleitet.Sie können OnMessagePending überschreiben, um nach bestimmten Nachrichten von Windows zu finden und darauf zu reagieren.

Die Standardversion von OnMessagePending das in der Klasse an, die CSocket die Meldungswarteschlange für Nachrichten WM_PAINT beim Warten auf einen blockierenden Aufruf, um abzuschließen überprüft.Sie leitet weiter Meldungen Farben zum Anzeigen Qualität zu verbessern.Neben dem diese nützliches etwas veranschaulicht eine Möglichkeit, die Sie möglicherweise die Funktion sich selbst außer Kraft.Ein weiteres Beispiel mithilfe OnMessagePending Betrachten Sie die folgende Aufgabe.Angenommen, Sie ein nicht modales Dialogfeld während sie auf eine Transaktion zum Netzwerk anzuzeigen.Das Dialogfeld enthält eine Abbrechen-Schaltfläche, die der Benutzer verwenden kann, um blockierenden Transaktionen abzubrechen, die zu lang dauern.Die OnMessagePending Überschreibung pumpte möglicherweise die Meldungen, die diesem nicht modales Dialogfeld beziehen.

In der OnMessagePending Überschreibung geben Sie entweder TRUE oder die Rückgabe von einem Aufruf an die Basisklassenversion von OnMessagePending zurück.Rufen Sie die Basisklassenversion auf, wenn sie Arbeit ausführt, dass Sie es geschehen soll.

Weitere Informationen finden Sie unter:

Siehe auch

Konzepte

Windows Sockets in MFC