我想知道有没有办法发送某种泛型,例如List <float> floatValues = new List<float>()
需要发送到 udp 客户端。我不知道该怎么做,任何帮助将不胜感激!
问问题
783 次
2 回答
1
你想要做的就是序列化/反序列化
在计算机科学中,在数据存储和传输的上下文中,序列化是将数据结构或对象状态转换为可以存储的格式(例如,在文件或内存缓冲区中,或通过网络连接传输)的过程链接)并稍后在相同或另一个计算机环境中“复活”
我建议不要构建自己的序列化程序,而是使用现有的库之一,例如 XmlSerializer、 SoapFormatter、 BinaryFormatter、 DataContractSerializer、 DataContractJsonSerializer、 JavaScriptSerializer、 Json.Net、 ServiceStack、 Protobuf.Net ........
这是一个使用 Json 序列化的示例
//Sender
string jsonString = new JavaScriptSerializer().Serialize(floatValues);
byte[] bytesToSend = Encoding.UTF8.GetBytes(jsonString);
//Receiver
string receivedJson = Encoding.UTF8.GetString(bytesToSend);
List<float> floatValues2 = new JavaScriptSerializer()
.Deserialize<List<float>>(receivedJson);
于 2012-11-27T09:55:19.560 回答
1
您可以floatValues
使用一些序列化工具(如XmlSerializer、BinaryFormatter或DataContractSerializer)进行序列化,然后将其反序列化。
或者您可以创建自己的“应用程序级协议”并放入流类型名称和序列化器类型,并在反序列化过程中使用此信息。
于 2012-11-27T09:09:52.313 回答