Delen via


Windows Sockets: afgeleid van socketklassen

In dit artikel worden enkele van de functionaliteit beschreven die u kunt verkrijgen door uw eigen klasse af te leiden van een van de socketklassen.

U kunt uw eigen socketklassen afleiden uit CAsyncSocket of CSocket om uw eigen functionaliteit toe te voegen. Deze klassen bevatten met name een aantal virtuele lidfuncties die u kunt overschrijven. Deze functies omvatten OnReceive, OnSend, OnAccept, OnConnect en OnClose. U kunt de functies in uw afgeleide socketklasse overschrijven om te profiteren van de meldingen die ze bieden wanneer netwerkgebeurtenissen plaatsvinden. Het framework roept deze callback-functies voor meldingen aan om u op de hoogte te stellen van belangrijke socket-gebeurtenissen, zoals de ontvangst van gegevens die u kunt beginnen te lezen. Zie Windows Sockets: SocketMeldingen voor meer informatie over meldingsfuncties.

Bovendien levert klasse CSocket de overschrijfbare functie OnMessagePending (een geavanceerd overschrijfbaar lid). MFC roept deze functie aan terwijl de socket Windows-berichten pompt. U kunt overschrijven OnMessagePending om te zoeken naar bepaalde berichten van Windows en erop te reageren.

De standaardversie van OnMessagePending die in de klasse CSocket is opgenomen, onderzoekt de berichtwachtrij op WM_PAINT-berichten terwijl het systeem wacht tot een blokkerende oproep is voltooid. Het verzendt verfberichten om de weergavekwaliteit te verbeteren. Afgezien van iets nuttigs, illustreert dit een manier waarop u de functie zelf kunt overschrijven. Als een ander voorbeeld kunt u overwegen om OnMessagePending te gebruiken voor de volgende taak. Stel dat u een niet-modaler dialoogvenster weergeeft terwijl u wacht tot een netwerktransactie is voltooid. Het dialoogvenster bevat een knop Annuleren die de gebruiker kan gebruiken om blokkeringstransacties te annuleren die te lang duren. Uw OnMessagePending override kan berichten met betrekking tot dit niet-modale dialoogvenster pompen.

Retourneer in uw OnMessagePending overschrijving ofwel TRUE, of de return van een aanroep naar de basisklasseversie van OnMessagePending. Roep de versie van de basisklasse aan als die nog steeds taken uitvoert die u wilt laten doen.

Voor meer informatie, zie:

Zie ook

Windows Sockets in MFC