我有一个申请c#
它连接到另一个应用程序,编写为c++
,通过UDP。我更喜欢高性能的解决方案,因为我希望测量事件客户端、某些处理服务器端和客户端处理完成的响应之间的时间。本质上是:往返延迟。
我有一个 C# 对象,例如:
public class Package{
public Package(){}
public float DeliveryTime = 1.5;
public int NumberOfItems = 2
}
然后我将包序列化为字节数组:
Package package = new Package();
var serializedPackage = ObjectToByteArray(package);
接下来,我发送我的serializedPackage
通过 UDP(我知道,不保证交付或订单,但我不需要这些保证)。
client.Send(serializedPackage , serializedPackage .Length, ip);
然后我的 C++ 应用程序收到了 UDP 消息...
问题是:
现在如何将接收到的字节数组转换回可用的对象并保留属性值?
我需要反序列化到某个类包 c++ 端,然后使用属性...例如一些 sudo 代码:
DeserializedPackage deserializedPackage = someDeserializeFunction(bytes);
if(deserializedPackage.NumberOfItems > 0){
cout << deserializedPackage.DeliveryTime;
}
我从哪说起呢?这可能吗?
我很熟悉 C#,但对 C++ 完全陌生,所以请不要混合使用 C 和 C++。还有,我do not想要使用Boost
或另一个图书馆。
我也愿意接受诸如“将您的包对象转换为 JSON 并发送它。然后反序列化您的 JSON 并填充一个名为 package 的 C++ 对象”之类的建议。