Condividi tramite


Windows Sockets: derivazione dalle classi Socket

Questo articolo descrive alcune delle funzionalità che è possibile ottenere derivando la propria classe da una delle classi socket.

È possibile derivare classi socket personalizzate da CAsyncSocket o CSocket per aggiungere funzionalità personalizzate. In particolare, queste classi forniscono una serie di funzioni membro virtuali che è possibile eseguire l'override. Queste funzioni includono OnReceive, OnSend, OnAccept, On Connessione e OnClose. È possibile eseguire l'override delle funzioni nella classe socket derivata per sfruttare le notifiche fornite quando si verificano eventi di rete. Il framework chiama queste funzioni di callback di notifica per notificare eventi socket importanti, ad esempio la ricezione di dati che è possibile iniziare a leggere. Per altre informazioni sulle funzioni di notifica, vedere Windows Sockets: Socket Notifications.For more information about notification functions, see Windows Sockets: Socket Notifications.

Inoltre, la classe CSocket fornisce la funzione membro OnMessagePending (un'istruzione di override avanzata). MFC chiama questa funzione mentre il socket sta pompando messaggi basati su Windows. È possibile eseguire l'override OnMessagePending per cercare determinati messaggi da Windows e rispondere.

La versione predefinita di fornita nella classe CSocket esamina la coda dei OnMessagePending messaggi per WM_PAINT messaggi durante l'attesa del completamento di una chiamata di blocco. Invia messaggi di disegno per migliorare la qualità della visualizzazione. Oltre a fare qualcosa di utile, questo illustra un modo per eseguire l'override della funzione manualmente. Come altro esempio, è consigliabile usare OnMessagePending per l'attività seguente. Si supponga di visualizzare una finestra di dialogo senza modalità durante l'attesa del completamento di una transazione di rete. La finestra di dialogo contiene un pulsante Annulla che l'utente può usare per annullare le transazioni di blocco che richiedono troppo tempo. L'override OnMessagePending potrebbe pompare i messaggi correlati a questa finestra di dialogo senza modalità.

Nell'override OnMessagePending restituire TRUE o restituire da una chiamata alla versione della classe base di OnMessagePending. Chiamare la versione della classe base se esegue il lavoro che si vuole eseguire.

Per altre informazioni, vedere:

Vedi anche

Windows Sockets in MFC