Condividi tramite


Windows Sockets: Deriva da classi di socket

In questo articolo vengono descritte alcune funzionalità che è possibile ottenere derivando una classe da una delle classi di socket.

È possibile derivare le proprie classi di socket da CAsyncSocket o da CSocket per aggiungere la propria funzionalità.In particolare, queste classi forniscono una serie di funzioni membro virtuali che è possibile eseguire l'override.Queste funzioni includono OnReceive, OnSend, OnAccept, OnConnecte OnClose.È possibile eseguire l'override delle funzioni nella classe derivata di socket per sfruttare le notifiche che forniscono agli eventi di rete si verificano.Il framework chiama queste funzioni di callback di notifica per ricevere notifiche degli eventi importanti di socket, come la ricezione di dati che è possibile iniziare lettura.Per ulteriori informazioni sulle funzioni di notifica, vedere Windows Sockets: Notifiche di socket.

Inoltre, la classe CSocket fornisce la funzione membro di OnMessagePending (un sottoponibile a override avanzato).MFC chiama la funzione mentre il socket sta distribuendo messaggi Windows.È possibile eseguire l'override di OnMessagePending per trovare i messaggi delle finestre e rispondere a tali righe.

La versione predefinita di OnMessagePending fornito nella classe che CSocket esamina la coda di messaggi per i messaggi di WM_PAINT in attesa di una chiamata di blocco per completare.Invia i messaggi di disegno per migliorare la qualità di visualizzazione.Oltre a eseguire qualsiasi operazione di utile, questo viene illustrata una modalità che è possibile eseguire l'override della funzione manualmente.Ad esempio, considerare l'utilizzo di OnMessagePending per l'attività seguente.Si supponga di visualizzare una finestra di dialogo non modale durante l'attesa del completamento di una transazione di rete per completare.La finestra di dialogo contiene un pulsante Annulla che l'utente può utilizzare per annullare transazioni di blocco che accettano troppo lungo.L'override di OnMessagePending potrebbero pompare i messaggi correlati a questa finestra di dialogo non modale.

Nell'override di OnMessagePending , restituire TRUE o il valore restituito da una chiamata alla versione della classe base di OnMessagePending.Chiamare la versione della classe base se esegue il lavoro che si desidera fatto.

Per ulteriori informazioni, vedere:

Vedere anche

Concetti

In Windows Sockets MFC