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