Windows Sockets: Oznámení soketů
Tento článek popisuje funkce oznámení v třídy socket.Těchto členských funkcí jsou funkce zpětného volání, která volá rozhraní framework oznámit socket objekt důležité události.Funkce oznámení jsou:
OnReceive: upozorní tomto soketu vyrovnávací paměti pro něj získat voláním je dat příjem.
OnSend: tento soket upozornění, že je nyní možné odesílat data voláním Odeslat.
OnAccept: oznámí toto naslouchání soketu, který může přijímat čekající požadavky na připojení voláním přijmout.
OnConnect: oznámí toto připojování soketu, který jeho pokus o připojení byl dokončen: možná úspěšně nebo možná chyba.
Při zavření: upozorní tomuto soketu, který je připojen soket zavřel.
[!POZNÁMKA]
Funkce další oznámení je OnOutOfBandData.Toto oznámení informuje přijímající socket, že odesílání soketu je "out-of-band" data k odeslání.Out-of-band dat je logicky nezávislý kanál spojené s každou dvojici soketů připojení datového proudu.Kanál out-of-band se obvykle používá k odesílání dat "naléhavé".MFC podporuje out-of-band data.Zkušení uživatelé pracovat s třídou CAsyncSocket může být nutné použít out-of-band kanálu, ale uživatelé třídy CSocket se nedoporučuje používat.Jednodušší způsob je vytvořit druhý soket pro předávání těchto údajů.Další informace o out-of-band dat naleznete ve specifikaci rozhraní Windows Sockets, k dispozici v Windows SDK.
Je-li odvodit ze třídy CAsyncSocket, je nutné přepsat funkce oznámení pro síťové události do aplikace.Pokud odvození třídy z třídy CSocket, to je volba, zda mají být potlačena funkce oznámení úroků.Můžete také použít CSocket , v tom případě oznámení funguje výchozí žádným způsobem.
Tyto funkce jsou funkce zpětného volání overridable.CAsyncSocketa CSocket převést zprávy upozornění, ale je nutné implementovat funkci odpověď oznámení v případě, že chcete použít.V době, kdy vaše soketu po upozornění na události zájmu, jako je přítomnost dat ke čtení jsou volány funkce oznámení.
MFC volá funkce oznámení můžete přizpůsobit chování aplikace soketů v době, kdy byl upozorněn.Například můžete volat příjem z vaší OnReceive funkce oznámení, byla oznámena data ke čtení, můžete volat přijímání si je přečíst.Tento přístup je nezbytný, ale je platný scénář.Jako alternativu můžete použít funkce oznámení ke sledování pokroku, tisk Sledování zprávy a tak dále.
Přepsání funkce oznámení v soketu odvozené třídy a poskytnutím implementace můžete využít výhod těchto oznámení.
Během operace, například příjem nebo odesílání dat CSocket objekt se stane synchronní.Během synchronní státu jsou jakákoliv oznámení znamenalo další sokety ve frontě při aktuální socket čeká oznámení, které požaduje. (Např. během příjem volání, chce soket upozornění čtení.) Po soketu dokončí prováděnou operaci synchronní a asynchronní opět, může začít další sokety příjem ve frontě oznámení.
[!POZNÁMKA]
V CSocket, OnConnect nikdy volána funkce oznámení.Pro připojení k volání Připojit, která vrátí po dokončení připojení (úspěšně nebo chyba).Zpracování oznámení připojení je podrobností implementace MFC.
Podrobné informace o každé funkci oznámení naleznete v nápovědě k funkci v rámci třídy CAsyncSocket v Odkaz knihovny MFC.Zdrojový kód a informace o ukázky knihovny MFC naleznete v tématu Ukázky knihovny MFC.
Další informace naleznete v části: