【问题标题】:sending structs over sockets通过套接字发送结构
【发布时间】:2010-11-22 17:48:37
【问题描述】:

我正在使用 vb.net,我想将一些结构发送到 C++ tcp 服务器。

问题是我发送的结构可能包含其他结构。

结构{ 单位长度; 字节真的; customStruct customStuff; }FirstStruct;

结构{ 单位长度; 字符 [] 名称; }CustomStruct;

假设我想将 FirstStruct 发送到 C++ 服务器。我该怎么做呢?一些代码示例会很棒。

谢谢。

【问题讨论】:

    标签: c++ vb.net sockets interop struct


    【解决方案1】:

    结构不能通过套接字发送,只能通过字节发送。您必须决定如何在发送方将结构转换为字节流,然后在接收方转换回等效的数据结构。

    假设双方都运行 Windows*,您可以使用.NET binary serialization 处理细节。我怀疑它是否支持从 VB.NET 结构直接转换为 C 结构,但它应该能够在接收端构造一个合理的近似值。

    * Mono,AFAIK,不支持 C++ 的 .NET 扩展。

    【讨论】:

    • 是的。我知道在发送之前我需要将结构转换为字节数组。我遇到的问题是找到这样做的示例,以及如何将包含另一种结构类型的成员的结构转换为字节数组的示例。
    【解决方案2】:

    我会将我的 vb 结构序列化为 XML(或 JSON)之类的东西并在服务器端解析它们...

    【讨论】:

    • 这是一个我们正在尝试连接的现有服务器,因此不可能改变它处理数据的方式:(
    猜你喜欢
    • 2016-06-06
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多