不可能坐到这点的,唯一的方法就是譬如说你下位机要给上位机发送nk字节的char类型数据,那么你可以在发送这些数据之前,先发一个用以标识接着发送数据类型的flag(这个flag可以是你自己定义的结构体,或者枚举类型,譬如说 typedef enum{thechar,thenumber,thestruct}TYPE;)这样你先发送一个TYPE类型的内容给上位机,上位机通过这个TYPE的值来判断接着要接收什么数据。
而我之所以说不可能做到直接判断是什么数据类型,是因为你想想看,同样21这个数据,既可以是int,也可以是char,更可以是UINT或者别的,所以怎么可能光凭这个数据本身来判断是什么数据,要是能做到那样的话,那通讯的时候也就不需要“协议”这个概念了。
没有,绝对没有