我正在尝试通过RPC发送数组,但是当数据数组变得很大时,我收到“RPC:无法编码参数”。距我所见的10Kb以下。
这是失败的行。
xdr_bytes (xdrs, (char **)&objp->data, (uint*)&objp->len, objp->len))
这是被引用的结构。
struct dataStruct {
unsigned int len;
u_char *data;
};
有没有办法修复此错误,或者其他方式发送任意大型数组?
答案 0 :(得分:4)
在检查其他RPC命令的联机帮助页后,我发现了这个:
“警告:使用UDP有其缺点。由于基于UDP的RPC消息最多只能容纳8 KB的编码数据,因此该传输不能用于需要大量参数或返回大量结果的过程。”
我确实使用UDP,切换到TCP后,消息会正确发送到服务器。