Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver några av de funktioner som du kan få genom att härleda din egen klass från någon av socketklasserna.
Du kan härleda dina egna socketklasser från antingen CAsyncSocket eller CSocket för att lägga till dina egna funktioner. I synnerhet tillhandahåller dessa klasser ett antal virtuella medlemsfunktioner som du kan åsidosätta. Dessa funktioner inkluderar OnReceive, OnSend, OnAccept, OnConnect och OnClose. Du kan åsidosätta funktionerna i din härledda socketklass för att dra nytta av de meddelanden som de anger när nätverkshändelser inträffar. Ramverket anropar dessa notifieringsåteranropsfunktioner för att meddela dig om viktiga händelser för sockets, som till exempel när data tas emot och du kan börja läsa. Mer information om notifikationsfunktioner finns i Windows Sockets: Socket-notifikationer.
Dessutom tillhandahåller klassen CSocket medlemsfunktionen OnMessagePending (en avancerad funktion som kan åsidosättas). MFC anropar den här funktionen medan socket pumpar (skickar) Windows-baserade meddelanden. Du kan åsidosätta OnMessagePending för att leta efter specifika meddelanden från Windows och svara på dem.
Standardversionen av OnMessagePending som anges i klassen CSocket undersöker meddelandekön för WM_PAINT meddelanden i väntan på att ett blockeringsanrop ska slutföras. Den skickar färgmeddelanden för att förbättra visningskvaliteten. Förutom att göra något användbart illustrerar detta ett sätt att åsidosätta funktionen själv. Som ett annat exempel kan du överväga att använda OnMessagePending för följande uppgift. Anta att du visar en lägeslös dialogruta i väntan på att en nätverkstransaktion ska slutföras. Dialogrutan innehåller knappen Avbryt som användaren kan använda för att avbryta blockeringstransaktioner som tar för lång tid. Åsidosättningen OnMessagePending kan pumpa meddelanden som är relaterade till den här lägeslösa dialogrutan.
I din OnMessagePending-åsidosättning ska du returnera antingen TRUE eller returvärdet från ett anrop till basklassversionen av OnMessagePending. Anropa basklassversionen om den utför arbete som du fortfarande vill ha gjort.
Mer information finns i: