采用UDP通讯//--------.h文件 -------
CSocket m_SendSock;//--------.cpp文件-------
//初始化函数:
BOOL CCommUdp::InitPowerComm()
{
if(!AfxSocketInit())
return FALSE; //创建本地套接口
if(!m_SendSock.Create(theApp.m_MgrComm->m_PowerInfo.m_LocalPortNo, SOCK_DGRAM, NULL))//绑定本地套接口
{
return FALSE;
} CString ipstr = IpAddrToStr(theApp.m_MgrComm->m_PowerInfo.m_LocalIpAddr);
if(m_SendSock.Bind(theApp.m_MgrComm->m_PowerInfo.m_LocalPortNo, ipstr))
{
return FALSE;
} int szBuf = 1024;
m_SendSock.SetSockOpt(SO_RCVBUF,&szBuf,sizeof(szBuf));//设置缓冲区大小 return TRUE;
}
//接收函数
int CCommUdp::Read(BYTE * pBuf, int max)
{
CString ipstr = IpAddrToStr(theApp.m_MgrComm->m_PowerInfo.m_FarIpAddr);
int iRecv = m_SendSock.ReceiveFrom(pBuf, max, ipstr, theApp.m_MgrComm->m_PowerInfo.m_FarPortNo, 0); return iRecv;
}
//发送函数
int CCommUdp::Write(BYTE * pBuf, int len)
{
CString ipstr = IpAddrToStr(theApp.m_MgrComm->m_PowerInfo.m_FarIpAddr);
int iSend = m_SendSock.SendTo(pBuf, len, theApp.m_MgrComm->m_PowerInfo.m_FarPortNo, ipstr, 0);
return iSend;
}问题:当发送函数执行后,然后在接收函数中接收数据,如果对方没有回复数据,执行到ReceiveFrom就会报错:\mfc\sockcore.cpp line:947  如果对方有回复数据,则正常。很是奇怪折腾了好久也不知道是怎么回事,坐等高手解决!