gpt4 book ai didi

c# - 将对象转换为字节数组

转载 作者:行者123 更新时间:2023-11-30 17:46:03 27 4
gpt4 key购买 nike

我有一个服务器,它使用 TCP 套接字与客户端通信。

我想从一个客户端 (Sender) 发送一个对象到服务器,服务器将这个对象发送到另一个客户端 (Receiver)

对象包含像这样的不同类型的字段

Class Test {
public string key;
public int id;
public string message;
public Test ()
{
// constructor code
}

}

我的问题是如何将对象转换为字节数组,当 Receiver 接收到这个字节数组时如何进行相反的操作(从字节数组转换为对象)?

最佳答案

您需要serialize your object .在 C# 中有很多方法可以做到这一点。

您可以将您的对象序列化为二进制字节、XML 或自定义格式。如果你想要二进制字节(显然这就是你要找的)你可以使用 BinaryFormatter类。

来自 MSDN 示例:

Test test = new Test();
FileStream fs = new FileStream("output", FileMode.Create);
// Construct a BinaryFormatter and use it to serialize the data to the stream.
BinaryFormatter formatter = new BinaryFormatter();
try
{
formatter.Serialize(fs, test);
}
catch (SerializationException e)
{
Console.WriteLine("Failed to serialize. Reason: " + e.Message);
throw;
}
finally
{
fs.Close();
}

当然,您将使用套接字输出流来发送数据,而不是 FileStream 对象。

如果您正在考虑多个平台,我建议您使用基于 XML 的序列化,这样您就不会遇到与平台字节顺序(字节顺序)相关的问题。

关于c# - 将对象转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26784704/

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