我正在尝试通过 RPC 发送数组,但是当数据数组变大时,我收到"RPC:无法编码参数"。从我所看到的不到 10Kb。
这是失败的行。
xdr_bytes (xdrs, (char **)&objp->data, (uint*)&objp->len, objp->len))
下面是引用的结构。
struct dataStruct {
unsigned int len;
u_char *data;
};
有没有办法修复此错误,或者另一种发送任意大数组的方法?
在检查了其他 RPC 命令的手册页后,我发现了这个:
"警告:使用UDP有其缺点。由于基于 UDP 的 RPC 消息最多只能容纳 8 KB 的编码数据,因此此传输不能用于采用大量参数或返回巨大结果的过程。
我确实在使用UDP,切换到TCP后消息会正确发送到服务器。