0

我试图通过 RPC 发送一个数组,但是当数据数组变得很大时,我收到“RPC:无法编码参数”。根据我所见,不到 10Kb。

这是失败的线路。

xdr_bytes (xdrs, (char **)&objp->data, (uint*)&objp->len, objp->len))

这是被引用的结构。

struct dataStruct {
    unsigned int len;
    u_char *data;
};

有没有办法解决这个错误,或者有另一种方法来发送任意大的数组?

4

1 回答 1

4

在检查了其他 RPC 命令的联机帮助页后,我发现了这一点:

“警告:使用 UDP 有其缺点。由于基于 UDP 的 RPC 消息最多只能容纳 8 KB 的编码数据,因此这种传输不能用于需要大参数或返回大结果的过程。”

我确实在使用 UDP,并在切换到 TCP 消息后正确发送到服务器。

于 2012-12-03T13:15:28.093 回答