Хорошо, во-первых, datagram.begin()
бесполезен, поскольку он возвращает итератор, который вы вообще не назначаете.Если вы хотите вставить число в первую позицию QByteArray
, вы можете сделать что-то вроде:
datagram.insert(0, QString::number(pos++));
Чтобы прочитать его, самый простой способ - использовать QTextStream
, например:
QTextStream str(datagram);
quint16 num;
str >> num;
Кроме того, взгляните на документы перед публикацией, потому что документы Qt действительно просты и полезны, если вы знаете, как искать (и это не так сложно, поверьте мне).