我在框架类里响应按钮void CMainFrame::OnConnect()//建立连接 。
 然后设置为异步套接字SOCKET_ERROR == WSAAsyncSelect(m_sConnectSocket,m_hWnd,UM_Receve,FD_READ)也就是自己建立一个
 UM_Receve的消息。以下为消息响应函数
 LRESULT CMainFrame::OnRecvData(WPARAM wParam,LPARAM lParam)
{
switch (LOWORD(lParam))
{
case FD_READ:
{
unsigned char *pBuf = new unsigned char [23];  //准备接受下位机发上来的23个字节的uchar类型数据
                                              //第0位起始位AA校验位,1-21位数据位,22位为55校验位
float aa[11] = {0.0};

{
while (::recv(m_sConnectSocket,(char*)pBuf,23,NULL))//接收数据
{
// if((pBuf[0]==0xAA)&&(pBuf[22]==0x55))
for (int i=1,j=0;i<20,j<10;i=i+2,j++)
{
/*******************浮点型数据恢复*********************/
aa[j] = (float)((pBuf[i] << 8)+pBuf[i+1]);
}
aa[10] = pBuf[21];
WaitForSingleObject(hMutex,INFINITE);
/********************************/
fRecedata[count].recTem1 = aa[0];
fRecedata[count].recTem2 = aa[1];
fRecedata[count].recTem3 = aa[2];
fRecedata[count].recTem4 = aa[3];
fRecedata[count].recNiuju= aa[4];
fRecedata[count].recSpeed= aa[5];
fRecedata[count].recSetSpeed= aa[6];
fRecedata[count].recSetTem1= aa[7];
fRecedata[count].recSetTem2= aa[8];
fRecedata[count].recSetTem3= aa[9];
fRecedata[count].recSwitch= aa[10]; //开关量
count++;
TRACE("收到数据!!!!!!\n");
Sleep(100);
ReleaseMutex(hMutex);
}

TRACE("套接字接受成功\r\n");
}
delete []pBuf;
break;
}
}
return (LRESULT)1;
}
现在的问题是:下层单片机上的套接字不断地在给我发数据。我一与下层建立套接字连接后,我程序立马死掉了,鼠标不断地在程序界面打圈圈
求解。