Partager via


CAsyncSocket::OnReceive

Appelé par l'infrastructure pour notifier socket ce qu'il existe des données dans la mémoire tampon qui peut être récupérée en appelant la fonction membre de Recevoir .

virtual void OnReceive( 
   int nErrorCode  
);

Paramètres

  • nErrorCode
    l'erreur la plus récente sur un socket. Les codes d'erreur suivante s'appliquent à OnReceive la fonction membre :

    • 0 La fonction exécutée avec succès.

    • WSAENETDOWN que l'implémentation de Windows Sockets l'a détecté que le sous-système réseau a échoué.

Notes

Pour plus d'informations, consultez Windows Sockets : notifications de socket.

Exemple

void CMyAsyncSocket::OnReceive(int nErrorCode)   // CMyAsyncSocket is  
                                                // derived from CAsyncSocket
{
   static int i = 0;

   i++;

   TCHAR buff[4096];
   int nRead;
   nRead = Receive(buff, 4096); 

   switch (nRead)
   {
      case 0:
        Close();
        break;
      case SOCKET_ERROR:
        if (GetLastError() != WSAEWOULDBLOCK) 
        {
          AfxMessageBox (_T("Error occurred"));
          Close();
        }
        break;
      default:
        buff[nRead] = _T('\0'); //terminate the string
        CString szTemp(buff);
        m_strRecv += szTemp;   // m_strRecv is a CString declared  
                        // in CMyAsyncSocket 
        if (szTemp.CompareNoCase(_T("bye")) == 0)
        {
           ShutDown();
           s_eventDone.SetEvent();
        }
   }
   CAsyncSocket::OnReceive(nErrorCode);
}

Configuration requise

Header: afxsock.h

Voir aussi

Référence

CAsyncSocket, classe

Graphique de la hiérarchie

CAsyncSocket::GetLastError

CAsyncSocket::OnAccept

CAsyncSocket::OnClose

CAsyncSocket::OnConnect

CAsyncSocket::OnOutOfBandData

CAsyncSocket::OnSend

CAsyncSocket::Receive