>Давайте уважаемый, без излишних обобощений и огульных обвинений. ничего щас не начнется.
>
>Здесь нигде не рассматривался механизм передачи по сети. Извините, если ответил грубо.
Просто у OP изначально была такая конструкция:
cout << "Body: " << buff[3]*100+buff[4]*100+buff[5]*10+buff[6] << endl;
То есть, у него была избыточная система счисления с основанием 10 и 256-ю цифрами (при условии, что первый коэффициент -- 1000, а не 100). Каждая цифра передавалась одним байтом.
Эта конструкция хотя бы не была машинно-зависимой, она вычислится одинаково при любом порядке байтов в машине.
Если же писать/читать напрямую структуры, то:
* во-первых, прочитав число таким образом, мы не получим тот же результат, что и при чтении способом из исходного сообщения;
* во-вторых та самая проблема с порядком байтов.
Нужно было не показать, что можно читать/писать структуры, а рассказать, что в настоящих программах делают так:
1. выделить кусок памяти под пакет;
2. функциями htons(), htonl() перевести числа из локального порядка байтов в сетевой;
3. при помощи memcpy() переписать эти числа побайтово в выделеную память начиная с нужного байта;
4. отправить пакет.
1. получить пакет;
2. функцией memcpy() переписать данные из пакета в переменные соответствующего числового типа;
3. функциями ntohs(), ntohl() перевести числа из сетевого порядка байтов в локальный.