跨平台使用结构体;

原创 2004年10月19日 12:02:00

实践证明,在VC当中定义的结构体,无论形式如何,都可以正常的发送到Java的应用当中,反过来也是一样;
我这个例子我没有做过,但XX牛X 公司的技术员亲口告诉我那不是问题,并且很Easy.
只要注意一些技巧就行了,比如:如果结构体当中包含string(不定长度的字符串),一定要转换成定长的char[],等.他没有多说,他很忙.
于是我很郁闷,因为我现在的细化工作之一就是要在C#当中,与在VC的网络应用程序通过TCP及UDP协议交互结构体数据;
我首先制作一个完全在C#当中进行TCP协议下收发结构体的例子,原先准备用序列化机制来实现,但是在VC来看,支持序列化是一件很麻烦的事情.所以我决定使用“把结构体转换为byte[]数组,然后通过网络发送,网络的另一端会根据收到的byte[]重新装配出原模原样的结构体来."这种处理方式;
从思路上来看,对于结构体中的字符串类型,首先要把它的封装属性定义为ByValStr
,对它的取值要通过string ss=char[32].toString()这种方式来进行赋值.对于int整型类型来说,不需要进行转换;
但是在处理int[]类型时,还没有找到可以进行正常收发的方式.
总结:
(1)通过网络连接发送结构体数据包是一个很好的方式;
(2)在收发结构体数据包时有很多细节问题还需要更多的讨论与学习
(3)跨平台跨系统发送结构体数据包目前我还没有找到好的方式,期待我以后能找到有效的方式并告诉大家.
注:
有关本文的例子程序和相关讨论请见:
http://community.csdn.net/Expert/topic/3466/3466293.xml?temp=.6511652



跨平台使用结构体;

实践证明,在VC当中定义的结构体,无论形式如何,都可以正常的发送到Java的应用当中,反过来也是一样;我这个例子我没有做过,但XX牛X 公司的技术员亲口告诉我那不是问题,并且很Easy.只要注意一些技...
  • roseguns
  • roseguns
  • 2004年10月19日 12:02
  • 2188

关于C结构体bit field的跨平台的教训

http://www.cppblog.com/windcsn/archive/2006/09/08/bitfield.html
  • windcsn
  • windcsn
  • 2006年09月08日 14:25
  • 1496

跨平台C、C++代码注意的事项及如何编写跨平台的C/C++代码

在我们的开发中,跨平台的需求越来越强烈,如何保持C/C++代码能在多个平台上编译,是一个比较值得研究的问题。关于跨平台的文章网上很多,跨平台的库网上也很多。那么我从自己的跨平台开发经验谈一谈自己的心得...
  • benpaobagzb
  • benpaobagzb
  • 2016年03月06日 18:32
  • 2486

跨平台数据对接

The First: C6读取Kingdee database 的表t_rp_PayApplyBill (没有从表数据传递)字段读取主表数据库语句:SELECT top 1 'EBF'+REPLIC...
  • william_869642103
  • william_869642103
  • 2015年02月16日 10:20
  • 412

关于结构体的序列化

关于结构体的序列化!
  • SmartArtisan
  • SmartArtisan
  • 2015年03月18日 21:14
  • 1300

跨平台开发Cygwin&MinGW

转自linux宝库: http://www.linuxmine.com 1 引言  今天程序开发人员面临的最大问题就是如何使他们的应用程序支持各种不同的平台,如何使用户能够在不同的平台下不作任何...
  • dj0379
  • dj0379
  • 2016年12月12日 01:30
  • 355

C++ 结构体初始化方法

C++结构体初始化有以下几种方法: 使用构造函数 在C++中,struct可以当做类(class)来使用,同样支持成员函数,构造函数,析构函数。所以可以写对应的构造函数,实现自由初始化。 定义时,按...
  • qinhan728
  • qinhan728
  • 2015年11月12日 23:15
  • 2400

跨平台跨语言的Protobuf,又称ProtocolBuffer

众所周知,分布式网络程序对通讯协议的灵活性、容错性、可扩展性、安全性、性能等都有较高的要求,使得其复杂性比单机程序高很多。 主要用于处理网络字节流,还没有验证,如:服务器采用java语言写,...
  • u010015633
  • u010015633
  • 2013年04月10日 13:24
  • 1198

c/c++通过socket发送结构体

c/c++通过socket发送结构可以直接先将结构转化到内存中,再通过send直接发送。  在网络通讯过程中往往涉及一些有关联的参数传递,例如数组,结构体之类的。对于结构体其实方法挺简单,由于结构体...
  • educast
  • educast
  • 2013年10月23日 13:26
  • 2332

什么叫跨平台语言

什么叫跨平台语言呢?今天就个人理解简单谈一下,还望指正。     简单的说,就像插座和插头,这世界上有没有完全通用的插座呢?没有。但是比如某家公司,制作了插座和插头,一方面自己使用,一方面又制作了各...
  • mfwing
  • mfwing
  • 2016年07月14日 18:50
  • 1174
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:跨平台使用结构体;
举报原因:
原因补充:

(最多只允许输入30个字)