我有一个c ++ 32位GRPC服务器。
客户端是java 64bit GRPC应用程序。
我正在向包含long的服务器发送消息。
当服务器收到消息时,值已更改。
问题
在客户端,我发送1512345600000。
在服务器上我看到517111808。
答案 0 :(得分:0)
#include <cstdint>
using namespace std;
int64_t YourFunctionToRead()
{
// don't use 'long' as type
// it only guarantees to be at least 32bit, but certainly doesn't have to be 64bit
// while you need 64bit type
int64_t veryLongIntToRead = GRPCFunc();
return veryLongIntToRead;
}
此外,您可能会遇到语言问题。 Java运行时不是大端吗? C ++肯定不会假设很少或大端。 GPRC最有可能为您处理此问题。只是值得深思。