Condividi tramite


Windows Sockets: Notifiche di socket

In questo articolo vengono descritte le funzioni di notifica nelle classi di socket.Queste funzioni membro sono funzioni di callback che il framework chiama per notificare all'oggetto socket degli eventi importanti.Le funzioni di notifica sono:

  • OnReceive: Notifica questo socket che sono presenti dati nel buffer affinché recuperi chiamando di ricezione.

  • OnSend: Notifica questo socket che ora possibile inviare dati chiamando inviare.

  • OnAccept: Notifica questo socket in ascolto in grado di accettare in attesa di richieste di connessione chiamando accettare.

  • OnConnect: Notifica questo connettore che il tentativo di connessione ha completato: forse correttamente oppure per errore.

  • OnClose: Notifica questo socket che il socket connesso a chiuso.

    [!NOTA]

    Una funzione di notifica aggiuntiva è OnOutOfBandData.Questa notifica al socket di ricezione che il socket inviando dispone di dati “fuori banda„ da inviare.I dati fuori banda sono un canale logicamente indipendente associato a ogni coppia di socket di flusso collegati.Il canale fuori banda in genere utilizzato per inviare i dati “urgenti„.Dati fuori banda di MFC supporta.Gli utenti avanzati che utilizzano la classe CAsyncSocket potrebbe essere necessario utilizzare il canale fuori banda, ma gli utenti di classe CSocket non sono consigliati progetti da mediante.Il modo più semplice consiste nel creare un secondo socket per passare tali dati.Per ulteriori informazioni sui dati fuori banda, vedere la specifica di Windows Sockets, disponibile in Windows SDK.

Se si deriva dalla classe CAsyncSocket, è necessario eseguire l'override delle funzioni di notifica degli eventi della rete di interesse all'applicazione.Se una classe deriva dalla classe CSocket, è la scelta se eseguire l'override delle funzioni di notifica di interesse.È inoltre possibile utilizzare CSocket stesso, nel qual caso l'impostazione predefinita di funzioni di notifica a non eseguire alcuna operazione.

Queste funzioni sono funzioni di callback sottoponibili a override.CAsyncSocket e CSocket convertono i messaggi le notifiche, ma è necessario implementare come funzioni di notifica rispondono se si desidera utilizzarli.Le funzioni di notifica vengono richiamate quando il socket riceve una notifica di un evento di interesse, come la presenza di dati da leggere.

MFC chiama le funzioni di notifica che consentono di personalizzare il comportamento del socket quando riceve una notifica.Ad esempio, è possibile chiamare Receive dalla funzione di notifica di OnReceive , ovvero, su essere notificati vi sono dati da leggere, chiamate Receive per leggerlo.Questo approccio non è necessario, ma è uno scenario valido.In alternativa, è possibile utilizzare la funzione di notifica per tenere traccia dello stato di avanzamento, messaggi di traccia di stampa, e così via.

È possibile usufruire delle notifiche eseguendo l'override delle funzioni di notifica in una classe derivata di socket e fornendo un'implementazione.

Durante un'operazione come ricevere o inviare dati, un oggetto di CSocket diventa sincrono.Durante lo stato sincrono, tutte le notifiche significate per altri socket vengono accodate mentre attende correnti di socket la notifica desiderati.Ad esempio, durante una chiamata di Receive , il socket desidera una notifica per indicare). Una volta che il socket termine della relativa operazione sincrono e asincrono diventa nuovamente, altri socket possono iniziare ricezione di notifiche in coda.

[!NOTA]

In CSocket, la funzione di notifica di OnConnect non viene mai chiamata.Per le connessioni, chiamate Connetti, che restituiranno quando la connessione viene completata (correttamente o per errore).Come le notifiche di connessione vengono gestite è un dettaglio di implementazione MFC.

Per informazioni dettagliate su ogni funzione di notifica, vedere la funzione ambito della classe CAsyncSocketin riferimenti alla libreria MFC.Per il codice sorgente e le informazioni su esempi di MFC, vedere esempi di MFC.

Per ulteriori informazioni, vedere:

Vedere anche

Concetti

In Windows Sockets MFC