怀孕38周下腹部有刺痛:请讲讲下面代码的功能以及几个关键函数的作用

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 13:05:33
void CRegisterServer::OnSocket(WPARAM wParam, LPARAM lParam)
{
int bufSize = REG_COMMAND_LENGTH;
char commandBuf[REG_COMMAND_LENGTH];
CString rSocketAddress;
UINT rSocketPort;
DWORD retV;
unsigned char command;

retV = m_pSocket->ReceiveFrom(commandBuf, bufSize, rSocketAddress, rSocketPort);
if (retV == SOCKET_ERROR) {
AfxMessageBox("Reg Socket 错误!");
return;
}
command = (unsigned char)commandBuf[0];
if(command == REG_REQ_COMMAND)
{
if(m_nRegisteredClientsNum > 0)
{
for(int i = 0; i< m_nRegisteredClientsNum; i++)
{
if(m_ReceiverList[i] == rSocketAddress) //1.非正常下线再上线;2.收到“OK”前发了2次以上;3.“OK”丢包
{
commandBuf[0] = REG_OK_COMMAND;
retV = m_pSocket->SendTo(commandBuf, REG_COMMAND_LENGTH, REG_PORT, rSocketAddress);
if(retV == SOCKET_ERROR){
int ErrNum=m_pSocket->GetLastError();
AfxMessageBox("Reg Socket 错误!");
}
return;
}
}
}

if(m_nRegisteredClientsNum < m_nAllowedClientsNum)
{
commandBuf[0] = REG_OK_COMMAND;
m_ReceiverList[m_nRegisteredClientsNum] = rSocketAddress;
m_nRegisteredClientsNum ++;
} else
commandBuf[0] = REG_REFUSE_COMMAND;

retV = m_pSocket->SendTo(commandBuf, REG_COMMAND_LENGTH, REG_PORT, rSocketAddress);
if(retV == SOCKET_ERROR){
int ErrNum=m_pSocket->GetLastError();
AfxMessageBox("Reg Socket 错误!");
}
} else if(command == REG_BYE_COMMAND && m_nRegisteredClientsNum > 0)
m_nRegisteredClientsNum --;

return ;
}