我想实现并理解对我自己的rpc机制进行编组的概念(玩具真的)。虽然我得到了endian-ness背后的想法,但我不确定如何处理32位和16位整数。所以问题是机器A有32位的int,它想通过rpc调用调用函数int foo(int x);但是,表示此int的服务器是16位。仅发送低16位会丢失信息,这是不可取的。
我知道IDL解决这个问题的工作。但在这种情况下,我可以说我使用一个“定义”int为32位的IDL。虽然这种情况适用于我的场景,但在机器A具有16位int的情况下,当通过网络传输时总是浪费2个字节。
如果我们将IDL翻转为16位,那么用户必须手动拆分其本地int并做一些奇特的事情,完全打破了RPC的透明度。
那么在实际实现中使用的正确方法是什么?
感谢。
答案 0 :(得分:1)