这不就是你们约定的通讯协议么..直接解析就成了 为啥要UnicodeEncoding.UTF8.GetString(data)呢?正常来说 如果双方约定了协议(比如上面)那么对方可能就给你丢一个这个东西 比如10 ee 08 aa aa aa aa aa aa aa aa 其中10表示整个包的长度 ee表示命令(双方定义的) 08表示字符串字节长度 后面的8个字节就表示具体内容了.如果要读取后面的内容 就UnicodeEncoding.UTF8.GetString(data)(其中data是8个字节截取来的)一般来说协议就是这样的 我觉得你还是双方在一起讨论下比较好,..
这不就是你们约定的通讯协议么..直接解析就成了 为啥要UnicodeEncoding.UTF8.GetString(data)呢?正常来说 如果双方约定了协议(比如上面)那么对方可能就给你丢一个这个东西 比如10 ee 08 aa aa aa aa aa aa aa aa 其中10表示整个包的长度 ee表示命令(双方定义的) 08表示字符串字节长度 后面的8个字节就表示具体内容了.如果要读取后面的内容 就UnicodeEncoding.UTF8.GetString(data)(其中data是8个字节截取来的)一般来说协议就是这样的 我觉得你还是双方在一起讨论下比较好,..
这不就是你们约定的通讯协议么..直接解析就成了 为啥要UnicodeEncoding.UTF8.GetString(data)呢?正常来说 如果双方约定了协议(比如上面)那么对方可能就给你丢一个这个东西 比如10 ee 08 aa aa aa aa aa aa aa aa 其中10表示整个包的长度 ee表示命令(双方定义的) 08表示字符串字节长度 后面的8个字节就表示具体内容了.如果要读取后面的内容 就UnicodeEncoding.UTF8.GetString(data)(其中data是8个字节截取来的)一般来说协议就是这样的 我觉得你还是双方在一起讨论下比较好,..
谢谢,协议是我自己定的,这些都了解,就是不懂怎么读取10,ee和08这几个值,比如有的需要根据ee来判断执行哪些操作,我试了几个都没办法读取出来。
float a = System.BitConverter.ToSingle(data, 0);
double b = System.BitConverter.ToDouble(data, 0);
int c = System.BitConverter.ToInt16(data, 0);
int d = System.BitConverter.ToInt32(data, 0);
long e = System.BitConverter.ToInt64(data, 0);
uint f = System.BitConverter.ToUInt16(data, 0);
uint g = System.BitConverter.ToUInt32(data, 0);
我用这些读取出来的值都是错的,不知道对应用哪个方法读取
如果是Stream,可以用Postion定位再读取
ReadBoolean(),ReadChar(),ReadDouble()....