RPC: xdr_bytes & quot; Не могу закодировать аргументы & quot; когда массив слишком большой

Я пытаюсь отправить массив через RPC, но я получаю «RPC: невозможно кодировать аргументы», когда массив данных становится слишком большим. Под 10Кб из того что я видел.

Это линия, которая терпит неудачу.

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

Вот структура, на которую ссылаются.

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

Есть ли способ исправить эту ошибку или другой способ отправки произвольно больших массивов?

0

Решение

После проверки man-страниц для других команд RPC я нашел это:

«Предупреждение. Использование UDP имеет свои недостатки. Поскольку RPC-сообщения на основе UDP могут содержать до 8 Кбайт закодированных данных, этот транспорт нельзя использовать для процедур, которые принимают большие аргументы или возвращают огромные результаты».

Я действительно использовал UDP, и после переключения на TCP сообщения отправляются на сервер должным образом.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]