【发布时间】:2015-10-03 18:09:55
【问题描述】:
如何使用 java 'outputstream' 之类的套接字发送数组? 你能看到任何演示或示例序列化吗? 我可以用套接字向我的客户发送一个简单的文本。但是我怎样才能将数组、列表或类发送给我的客户。我想发送这种格式 列表数组;
【问题讨论】:
标签: c# sockets serialization send
如何使用 java 'outputstream' 之类的套接字发送数组? 你能看到任何演示或示例序列化吗? 我可以用套接字向我的客户发送一个简单的文本。但是我怎样才能将数组、列表或类发送给我的客户。我想发送这种格式 列表数组;
【问题讨论】:
标签: c# sockets serialization send
Java 的outputstream 也不能做你想做的事,它所能做的就是发送byte[],这正是C# 的套接字类所做的。
如果你想发送复杂的对象,你必须使用某种形式的“Serializer”,它可以让你将你的对象转换为byte[] 发送出去。
.NET 中内置的易于使用的序列化程序是 XmlSeralizer,这将生成一个字符串,然后您可以将其输入到 StreamWriter 中,这会将字符串转换为 byte[] 并写出到插座上。另一端只需使用StreamReader 的反向过程。
如果您不想使用中间文本步骤,我会不推荐使用BinaryFormatter,就像您在互联网上经常看到的那样,它非常“脆弱”并且在两端安装不同级别的 .NET Windows 更新最终可能会破坏它。相反,我建议使用第 3 方二进制序列化程序,例如 Protobuf-net
【讨论】: