Я отправляю данные из файла, используя обратный вызов сообщения Libcurl. В примере here показано, как отправлять данные как 1 байт за звонок из функции обратного вызова. Я изменил код, поэтому файл читается в куски. Это очень хорошо работает.C++ libCurl: функция обратного вызова после отправки более одного байта
текущий код образца:
if(sizeleft){
*(char *)ptr = readptr[0];
readptr++;
sizeleft--;
return 1;
}
Этот пример отправляет данные в 1 байт. , но предположим, что мне нужно отправить несколько байтов. Я попытался увеличить
readptr by two each time and decreasing sizeleft by two
и ireturn 2bytes at a time
.
Это не работает, как этот, и данные повреждены.
Буду признателен, если кто-то может помочь мне. Спасибо
У меня есть путаница 'станд :: макс (maxBytes, sizeleft)'. 'std :: max' вернет максимум maxBytes или sizeleft. если возвращается sizeleft, это означает, что он сработает? Я предполагаю, что это должно быть 'std :: min', поэтому всегда минимальное значение, чем maxbytes. что также будет равносильно равному, если оба размера и максбайт равны. –
Да, должно быть std :: min, я отредактирую ответ, чтобы это отразить. Спасибо за место! – peterpi