32位程序转成64位后 网络传输字节数变了吗?该怎么处理
32位程序转成64位后 网络传输字节数变了吗?在32位下int进行序列化后是4字节, 64位下进行序列化后是8字节?
32位程序转成64位后 网络传输字节数变了吗?
在32位下int进行序列化后是4字节, 64位下进行序列化后是8字节?
那原来传输一个int只有4字节现在不是变多了吗?
[解决办法]
不一定。取决于你的协议如何解析数据,例如你可以
把8个字节作为一个整数,或者4个字节做整数,或者两个字节
,或者一个,只要够用就可以。
[解决办法]
[解决办法]如果程序写的不好会发生这样的情况
就象你说的如果直接把int传出去的话就会这样
实际上通讯协议规定了此时应该传送多少字节
比如规定了要传送4字节,那么程序应该保证在32位和64位下编译后都还是
只传送4字节,这样才是规范的做法。
[解决办法]int、long等数据类型和系统字长有严格的对应关系,如果楼主希望跨平台通讯请使用平台无关的数据类型
如: int_32 uint_32 int_16 uint_16等