情况如下:
发过来的字节序可以解析成明文,有明文解析代码。
现在要做的是 把明文再原路返回字节序明文:00000008{Code:1}
明文解析代码:
//前四个字节代表长度
var headerData = new byte[4];
Array.Copy(header, offset, headerData, 0, 4); //得到长度 nLen 此时等于:8
int nLen = BitConverter.ToInt32(headerData, 0) - 4;
byte[] byteBodyData = new byte[nLen];
Array.Copy(bodyBuffer, offset, byteBodyData, 0,nLen); //得到内容 strBodyData 此时等于: {Code:1}
string strBodyData = nLen.ToString("D8") + System.Text.Encoding.UTF8.GetString(byteBodyData);现在要将明文 00000008{Code:1} 原路返回byte[]。
·················································································
发过来的字节序可以解析成明文,有明文解析代码。
现在要做的是 把明文再原路返回字节序明文:00000008{Code:1}
明文解析代码:
//前四个字节代表长度
var headerData = new byte[4];
Array.Copy(header, offset, headerData, 0, 4); //得到长度 nLen 此时等于:8
int nLen = BitConverter.ToInt32(headerData, 0) - 4;
byte[] byteBodyData = new byte[nLen];
Array.Copy(bodyBuffer, offset, byteBodyData, 0,nLen); //得到内容 strBodyData 此时等于: {Code:1}
string strBodyData = nLen.ToString("D8") + System.Text.Encoding.UTF8.GetString(byteBodyData);现在要将明文 00000008{Code:1} 原路返回byte[]。
·················································································
var bodyBuffer = System.Text.Encoding.UTF8.GetBytes(strBodyData.Substring(8));
//反推
static void Test2(string strBodyData, out byte[] header, out byte[] bodyBuffer)
{
long nLen = Int64.Parse(strBodyData.Substring(0, 8));
header = BitConverter.GetBytes(nLen + 4);
bodyBuffer = System.Text.Encoding.UTF8.GetBytes(strBodyData.Substring(8,(int)nLen));
}