次の方法で共有


CAsyncSocket::OnReceive

更新 : 2007 年 11 月

Receive メンバ関数を呼び出して取得できるデータがバッファにあることをソケットに通知するために、フレームワークが呼び出します。

virtual void OnReceive(
   int nErrorCode 
);

パラメータ

  • nErrorCode
    ソケットでの直前のエラー。OnReceive メンバ関数では、次のエラー コードが発生します。

    • 0   関数は正常に実行されました。

    • WSAENETDOWN   Windows ソケットの実装が、ネットワーク サブシステムの異常を検出しました。

解説

詳細については、「Windows ソケット : ソケット通知」を参照してください。

使用例

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);
}

必要条件

ヘッダー : afxsock.h

参照

参照

CAsyncSocket クラス

階層図

CAsyncSocket::GetLastError

CAsyncSocket::OnAccept

CAsyncSocket::OnClose

CAsyncSocket::OnConnect

CAsyncSocket::OnOutOfBandData

CAsyncSocket::OnSend

CAsyncSocket::Receive

その他の技術情報

CAsyncSocket のメンバ