数据接受和发送,有意思的问题?大家请进,来者有分!
我的代码中既要传普通的数据又要传一些特殊的数据(如:数据传输的状况,是否正常还是需重发,以及定时的链路检测)。我目前的解决这个问题的思路是:在发送数据之前,先发送一个特殊的状态包,如在发送普通数据之前,先发送一个“N”,接着再发送普通数据;接收端:如果先接受到了“N”则转入接受普通数据的接受函数;其他的数据也类似。
客户端发送程序:
{
.......
CString string;
string = "N"; //“N”表示普通的数据
int end = sockClient.Send(string,string.GetLength());//特殊数据
int nSended = sockClient.Send(&protocol_send,sizeof(Protocol));//普通数据
.......
}
服务器端接受程序:
{
.......
int end = pSocket->Receive(flag,2);
dlg.m_type = flag[0];
CString temp;
temp = dlg.m_type;
AfxMessageBox(temp);//这里显示是 “N”
if (dlg.m_type =='N')
{
nReceived = pSocket->Receive(&protocol_rev,sizeof(Protocol));
......
}
........
}
结果服务端,接受显示的都是“00000000000000000000000”
没有没见到正常的数据,请高手指点!