当前位置: 代码迷 >> C# >> 服务端C++,客户端C#通讯
  详细解决方案

服务端C++,客户端C#通讯

热度:674   发布时间:2016-05-05 03:51:33.0
服务端C++,客户端C#通信
想用这种方式进行通信,服务端和客户端定义同样的结构体,定义方式该怎么定,传输的时候,需不需要考虑struct对其的情况。
服务端结构体struct TCP_PACKAGE{ enum{flag}, int position[27][6],int score,float time,int step  }类似这种的结构,在C#中怎么表示,同时传输的时候要考虑啥问题?
   
------解决思路----------------------
不过在C#中把结构体转为与C++的完全相同的byte[],难度就比较大了

现在这种情况,最好是转为XML传输,兼容性和扩展性都比较好。
------解决思路----------------------
通常通讯都是自定义序列化方式,比如protobuf
直接传结构体要考虑硬件、编译器等等区别,问题太多
------解决思路----------------------
写一个二进制数据流的格式文档,没有用c结构体为目标的,顶多会在“代码示例”中出现一下。

你可以看这个范例文档 http://wenku.baidu.com/view/690046eae009581b6bd9eb4d.html 第7章“消息定义”,它是二进制方式的。

按照这个格式来编程,可以采用各种解析形式(例如使用 BinaryReader 类读取二进制数据),设计上跟“结构体”无系。
  相关解决方案