【发布时间】:2015-06-23 08:23:17
【问题描述】:
Java 提供了一种机制,称为对象序列化,其中对象可以表示为字节序列。
在谷歌上找到了这个。我使用 .Net 使用套接字连接发送数据包。我用Encoding.Default.GetBytes()。
序列化比较混乱,和GetBytes有什么区别?
【问题讨论】:
标签: .net
Java 提供了一种机制,称为对象序列化,其中对象可以表示为字节序列。
在谷歌上找到了这个。我使用 .Net 使用套接字连接发送数据包。我用Encoding.Default.GetBytes()。
序列化比较混乱,和GetBytes有什么区别?
【问题讨论】:
标签: .net
不,GetBytes() 只是使用要求的编码 将 string 转换为其二进制表示。所以它确实是序列化的,但它是非常特定于字符串的。
当你想将 any 对象序列化为字节时,你可以使用BinaryFormatter。有关如何使用BinaryFormatter 序列化对象的更多信息,请参阅here。
【讨论】:
string。如果要序列化另一种类型的对象,请使用BinaryFormatter。
BitConverter.GetBytes(lengthofserializedstring) 获取 byte[] 并在发送 byte[] 之前发送它由Encoding.Default.GetBytes() 收到)。啊...如果可能的话,你应该使用Encoding.UTF8.GetBytes
在 .NET 中,您也有序列化。你有二进制序列化、XML序列化和JSON序列化。
通过序列化,您可以将对象转换为另一种格式,以便存储或通过网络发送。序列化的对象可以反序列化为对象的实例(如果该类在运行时可用)。
使用 GetBytes(),您可以在运行时获得变量的字节表示。没有关于类型的信息。 您可以将 Bytes 解释为您想要的任何类型,当然会产生无用的结果。 GetBytes() 返回存储在物理内存中的原始字节。
【讨论】:
string。