gpt4 book ai didi

c# - 将字符串转换为字符串[],然后将字符串[]转换为字节[]

转载 作者:太空宇宙 更新时间:2023-11-03 22:33:19 24 4
gpt4 key购买 nike

申请详情:

  • 在 Visual Studio 2019 (Windows 10) 下开发
  • UWP 平台上使用 C#XAML 语言设计

应用程序从远程服务器接收信息。与套接字的连接用于双方之间的通信。

要与服务器通信,应用程序必须以字节数组形式发送数据,以便可以正确读取数据。

目前我使用这种方法以字节[]传递我的变量:

var ID_MESSAGE_ARRAY = BitConverter.GetBytes((int)MESSAGE);
var WAY_ARRAY = BitConverter.GetBytes((int)WAY);
var SIZE_ARRAY = BitConverter.GetBytes((int)SIZE);
var TYPE_STATE_DEVICE_ARRAY = BitConverter.GetBytes((int)TYPE_STATE_DEVICE.LOGIN);

var HexString = ID_MESSAGE_ARRAY.Concat(WAY_ARRAY).Concat(SIZE_ARRAY).Concat(TYPE_STATE_DEVICE_ARRAY).Concat(ABO).ToArray();

作为此消息的结果,我必须发送一个字符串。所以我使用这种方法将我的 string 编码为 bytes[] :

string ABONNE = "TEST";
var ABO = Encoding.ASCII.GetBytes(ABONNE);

但我有一个问题,这个 string 必须是 32 字节,而当我在另一边解码 (hexa) 时,我发现这个:

获得的结果:54-45-53-54

预期结果:54-45-53-54-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 -00-00-00-00-00-00-00-00-00-00-00

要找到这个结果,我如何在 string[32] 中传递我的 string ABONNE,然后在 bytes[] 中传递?

最佳答案

如果您将字符串直接传递给 32 字节数组会怎么样:

string ABONNE = "TEST";
Byte[] ABO = new byte[32];
Encoding.ASCII.GetBytes(ABONNE,0,ABONNE.Length,ABO,0);

两个零都用于 0-index(起始位置)。我还创建了一个 32 字节的空数组,然后用 ABONNE 中的字节填充它。 请注意,如果 Encoding.ASCII.GetBytes(ABONNE).Length 大于 32 字节,您将得到一个异常

关于c# - 将字符串转换为字符串[],然后将字符串[]转换为字节[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56288583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com