Я читаю из двоичного файла.
char bigbuf[5000];
while (read(fd, bigbuf, 2) != 0) {
uint16_t packetSize = htons(*(uint16_t *)bigbuf);
read(fd, bigbuf + 2, packetSize - 2);
myParser.onUDPPacket(bigbuf, packetSize);
}
Пакеты записываются в двоичный файл размером 40 байт, но внутри функции onUDPPacket я получаю пакет размером 61 байт, затем при втором вызове я снова получить 60-байтовый пакет. Теперь мне нужно написать функцию onUDPPacket таким образом, чтобы при первом вызове она обрабатывала 40 байт данных из 61 полученного байта и добавляла оставшийся 21 байт в начале следующих 60 байт пакета. Как мне это добавить?
void Parser::onUDPPacket(const char *buf, size_t len)
{
}