Sdílet prostřednictvím


Windows Sockets: Odvozování z tříd soketů

Tento článek popisuje některé z funkcí, které můžete získat odvozením vlastní třídy z jedné z tříd soketů.

Vlastní třídy soketů můžete odvodit z CAsyncSocket nebo CSocket a přidat tak vlastní funkce. Konkrétně tyto třídy poskytují řadu virtuálních členských funkcí, které můžete přepsat. Mezi tyto funkce patří OnReceive, OnSend, OnAccept, On Připojení a OnClose. Funkce v odvozené třídě soketu můžete přepsat, abyste mohli využít oznámení, která poskytují při výskytu síťových událostí. Architektura volá tyto funkce zpětného volání oznámení, které vás upozorní na důležité události soketů, jako je příjem dat, která můžete začít číst. Další informace o funkcích oznámení naleznete v tématu Windows Sockets: Socket Notifications.

Kromě toho třída CSocket poskytuje OnMessagePending členské funkce (pokročilé přepisovatelné). MFC volá tuto funkci, zatímco soket pumpuje zprávy založené na systému Windows. Pokud chcete vyhledat konkrétní zprávy z Windows, můžete je přepsat OnMessagePending a odpovědět na ně.

Výchozí verze OnMessagePending zadaná ve třídě CSocket zkoumá frontu zpráv pro WM_PAINT zprávy při čekání na dokončení blokujícího volání. Odesílá zprávy malování za účelem zlepšení kvality zobrazení. Kromě toho, že uděláte něco užitečného, je to jeden ze způsobů, jak můžete funkci přepsat sami. Jako další příklad zvažte použití OnMessagePending pro následující úlohu. Předpokládejme, že při čekání na dokončení síťové transakce zobrazíte dialogové okno bez režimu. Dialogové okno obsahuje tlačítko Zrušit, které uživatel může použít ke zrušení blokujících transakcí, které trvá příliš dlouho. Přepsání OnMessagePending může čerpat zprávy související s tímto bezmodálním dialogovým oknem.

OnMessagePending V přepsání vraťte hodnotu TRUE nebo návrat z volání do základní třídy verze OnMessagePending. Pokud provádí práci, kterou chcete přesto provést, zavolejte verzi základní třídy.

Další informace naleznete v tématu:

Viz také

Windows Sockets v prostředí MFC