casyncsocket onreceive 接收一段时间数据后,再也收不到数据了,请高手指点

时间:2023-01-06 16:59:38
近来遇到一个奇怪的问题
利用casyncsocket派生出新类,在该类的OnReceive中 使用ReceiveFrom接收数据
目前,是本机的一个端口,同时接收来自2台计算机的2种不同类型不同长度的数据,数据均以25ms为周期发送
时而好,时而运行一段时间,不再接收数据,不再触发OnReceive运行,但是也未进入ReceiveFrom返回值为SOCKET_ERROR的分支中。相当困惑,请高手帮忙,OnReceive代码如下,谢谢:
void CUDPSocket::OnReceive(int nErrorCode)
{
char m_pBuf[BUFFERSIZE];
memset(m_pBuf,0,BUFFERSIZE;
CString sIpAddress
UINT unPort;

int nLen=ReceiveFrom(m_pBuf,BUFFERSIZE,sIpAddress,unPort);
int nIP=0;
nIP=atoi(sIpAddress.Right(2));

if(nLen==SOCKET_ERROR)
{
AfxMessageBox("接收数据出现错误!");
return;
}
GetSockName(sIpAddress,unPort);
m_pDoc->ProcessingNetData(m_pBuf,unPort,nIP);
CAsyncSocket::OnReceive(nErrorCode);
}

2 个解决方案

#1


该回复于2009-06-16 10:23:15被版主删除

#2


我也遇到同样的问题,求解

#1


该回复于2009-06-16 10:23:15被版主删除

#2


我也遇到同样的问题,求解