C# socket接收十六进制数据,求相助!
C# socket接收十六进制数据,求帮助!!
FF FF FF 2 0 0 1D 3 0 1 0 0 0 0 0 0 0 0 0 40 数据大概就是这种格式,FF FF FF是开头,是一个byte[19]的数组,这个数据发送过来的时候,C#在接收的时候,单个的0会不会影响数据接收的格式??????
3个FF后,前3个字节,代表一个数据,然后是1个字节,然后是2个字节,1个字节,最后一堆就不用管了。
我在接收的时候是不是应该这么写?
我这样写可以得到数据中的十六进制数据吗??????求大神帮我看一下 谢谢了!~!!
------解决方案--------------------
自己调试下试试
------解决方案--------------------
用流来接收吧
------解决方案--------------------
要看你接受的是什么,如果是F字符,你可以判断是否等于FFFFF,但如果接受的是二进制数据流F和字符F就完全是两回事了
------解决方案--------------------
FF FF FF 2 0 0 1D 3 0 1 0 0 0 0 0 0 0 0 0 40 数据大概就是这种格式,FF FF FF是开头,是一个byte[19]的数组,这个数据发送过来的时候,C#在接收的时候,单个的0会不会影响数据接收的格式??????
3个FF后,前3个字节,代表一个数据,然后是1个字节,然后是2个字节,1个字节,最后一堆就不用管了。
我在接收的时候是不是应该这么写?
while (true) {
byte[] b2 = new byte[2]; //先用3个字节来判断FF FF FF
int r = socket1.Receive(b2,b2.Length,0);
if(r == 0){
continue ;
}
if(Encoding .ASCII .GetString (b2,0,r) != "FFFFFF"){ //如果找到3个FF 就开始找后面的17个字节
break ;
}else{
byte[] b3 = new byte[16];
int rs = socket1.Receive (b3,b3.Length ,0); //这个接收会不会影响我下面写的数据转换???
if(rs == 0){
continue ;
}
string dingwei = b3[2].ToString("X2") + b3[1].ToString("X2") + b3[0].ToString("X2") ; //这是开始的前3个
string speed = b3[3].ToString("X2");
string angle = b3[5].ToString("X2")+ b3[4].ToString("X2");
string fx = b3[6].ToString("X2");
}
我这样写可以得到数据中的十六进制数据吗??????求大神帮我看一下 谢谢了!~!!
socket
16进制
------解决方案--------------------
自己调试下试试
------解决方案--------------------
用流来接收吧
------解决方案--------------------
要看你接受的是什么,如果是F字符,你可以判断是否等于FFFFF,但如果接受的是二进制数据流F和字符F就完全是两回事了
------解决方案--------------------