CAsyncSocket::OnSend
更新 : 2007 年 11 月
Send メンバ関数を呼び出して現在データを送信できることをソケットに通知するために、フレームワークが呼び出します。
virtual void OnSend(
int nErrorCode
);
パラメータ
nErrorCode
ソケットでの直前のエラー。OnSend メンバ関数では、次のエラー コードが発生します。0 関数は正常に実行されました。
WSAENETDOWN Windows ソケットの実装が、ネットワーク サブシステムの異常を検出しました。
解説
詳細については、「Windows ソケット : ソケット通知」を参照してください。
使用例
// CMyAsyncSocket is derived from CAsyncSocket and defines the
// following variables:
// CString m_sendBuffer; //for async send
// int m_nBytesSent;
// int m_nBytesBufferSize;
void CMyAsyncSocket::OnSend(int nErrorCode)
{
while (m_nBytesSent < m_nBytesBufferSize)
{
int dwBytes;
if ((dwBytes = Send((LPCTSTR)m_sendBuffer + m_nBytesSent,
m_nBytesBufferSize - m_nBytesSent)) == SOCKET_ERROR)
{
if (GetLastError() == WSAEWOULDBLOCK)
{
break;
}
else
{
TCHAR szError[256];
_stprintf_s(szError, _T("Server Socket failed to send: %d"),
GetLastError());
Close();
AfxMessageBox (szError);
}
}
else
{
m_nBytesSent += dwBytes;
}
}
if (m_nBytesSent == m_nBytesBufferSize)
{
m_nBytesSent = m_nBytesBufferSize = 0;
m_sendBuffer = _T("");
}
CAsyncSocket::OnSend(nErrorCode);
}
必要条件
ヘッダー : afxsock.h