TCP通讯中字符设计有关问题
TCP通讯中字符设计问题
初次接触
有数据, 0025E4A62141
要通过BYTE数组发送到远端程序中(socket, tcp协议)
直接发字符串链接传送我会写
如果是要通过byte数组,该怎么写?
byte[] bs = new byte[7];
bs[0] = 0xFE;
bs[1] = byte.Parse("00");
bs[2] = byte.Parse("25");
bs[3] = byte.Parse("E4");
bs[4] = byte.Parse("A6");
bs[5] = byte.Parse("21");
bs[6] = byte.Parse("41");
是否我先这样把数据分割好,再放到byte数组里??如果这样的话,数据长一点不是byte数组长度要很长了?
------解决思路----------------------
写个循环,将字符串分割,然后转成byte数组
byte数组很长怎么了,你直接发字符串难道就不长了吗,在底层其实也是转成byte数组再发的
------解决思路----------------------
byte[] bs=new byte[1024];
就好了,不要太吝啬
反正你真正发送的时候,还要再传入参数,到底发送多少个字节,不会因为你定义的数组大,就把无用数据都给发出去了
------解决思路----------------------
------解决思路----------------------
realData就是处理后的数据 能实现你的效果 前提是 hex别超过0xFF 而且str是2的倍数
初次接触
有数据, 0025E4A62141
要通过BYTE数组发送到远端程序中(socket, tcp协议)
直接发字符串链接传送我会写
如果是要通过byte数组,该怎么写?
byte[] bs = new byte[7];
bs[0] = 0xFE;
bs[1] = byte.Parse("00");
bs[2] = byte.Parse("25");
bs[3] = byte.Parse("E4");
bs[4] = byte.Parse("A6");
bs[5] = byte.Parse("21");
bs[6] = byte.Parse("41");
是否我先这样把数据分割好,再放到byte数组里??如果这样的话,数据长一点不是byte数组长度要很长了?
------解决思路----------------------
写个循环,将字符串分割,然后转成byte数组
byte数组很长怎么了,你直接发字符串难道就不长了吗,在底层其实也是转成byte数组再发的
------解决思路----------------------
byte[] bs=new byte[1024];
就好了,不要太吝啬
反正你真正发送的时候,还要再传入参数,到底发送多少个字节,不会因为你定义的数组大,就把无用数据都给发出去了
------解决思路----------------------
List<byte> blist = new List<byte>();
foreach (var parm in YourParm)
{
blist.Add(byte.Parse(parm));
}
blist.ToArray();
------解决思路----------------------
string str = "0025E4A62141";
List<byte> bytes = new List<byte>();
bytes.Add(0xFE);
for (int i = 0; i < str.Length; i += 2)
{
string hexStr = str.Substring(i, 2);
byte data = Convert.ToByte(hexStr, 16);
bytes.Add(data);
}
byte[] realData = bytes.ToArray();
realData就是处理后的数据 能实现你的效果 前提是 hex别超过0xFF 而且str是2的倍数