int reg_num=(9+2*(sendBuf[10]*256+sendBuf[11])); int iSend=s.Send(sendBuf,12,0);
if(iSend==SOCKET_ERROR)
{
AfxMessageBox("发送数据失败!");
s.Close ();
return 1;
} BYTE Recv[260];
int iRecv=s.Receive (Recv,260,0
if(iRecv<9)
{
if(iRecv==0)
{
AfxMessageBox("意外的关闭远端的连接!");
}
else
{
AfxMessageBox("响应帧太短!");
}
}
else//不清楚?????
{
BYTE a=Recv[7]&0x80;
if(a!=0)
{
AfxMessageBox("Modbus意外响应不正确!");
}
else
{
if(iRecv!=reg_num)
{
AfxMessageBox("不正确的响应大小!");
}
else//接受数据的处理????
{
}
}
}
关于通讯还有一些不清楚的,哪位高手能帮忙解释下else语句中几个判断是什么意思?谢啦
if(iSend==SOCKET_ERROR)
{
AfxMessageBox("发送数据失败!");
s.Close ();
return 1;
} BYTE Recv[260];
int iRecv=s.Receive (Recv,260,0
if(iRecv<9)
{
if(iRecv==0)
{
AfxMessageBox("意外的关闭远端的连接!");
}
else
{
AfxMessageBox("响应帧太短!");
}
}
else//不清楚?????
{
BYTE a=Recv[7]&0x80;
if(a!=0)
{
AfxMessageBox("Modbus意外响应不正确!");
}
else
{
if(iRecv!=reg_num)
{
AfxMessageBox("不正确的响应大小!");
}
else//接受数据的处理????
{
}
}
}
关于通讯还有一些不清楚的,哪位高手能帮忙解释下else语句中几个判断是什么意思?谢啦
{
BYTE a=Recv[7]&0x80;
if(a!=0)
{
AfxMessageBox("Modbus意外响应不正确!");
}
else
{
if(iRecv!=reg_num)
{
AfxMessageBox("不正确的响应大小!");
}
else//接受数据的处理???? 处理数据
{
}
}modbus协议较简单,建议楼主先把协议弄熟了