Порядок байтов массива Int по сети

Я знаю, что это может быть довольно глупый вопрос, но если бы я должен был отправить массив int по сети, мне нужно было бы использовать порядок байтов? Другими словами, скажем, у меня есть int a, b, c, d и int e [4]

e[1] = a; e[2] = b; e[3] = c; e[4] = d;

теперь я отправляю e, используя: write(socket, e, sizeof (e));

Будет ли получатель читать его по порядку? Или мне нужно использовать htonl для a, b, c, d перед сохранением в массиве? Спасибо


person Kurt Ricci    schedule 10.05.2012    source источник


Ответы (2)


Если получатель ожидает ints в сетевом порядке байтов, тогда да, вам придется поместить каждый int в сетевой порядок байтов перед его отправкой.

person Ernest Friedman-Hill    schedule 10.05.2012
comment
Получатель ожидает массив int того же размера. например, целое число х[4] - person Kurt Ricci; 10.05.2012

Сеть не будет заботиться о порядке байтов, но приложение, размещающее принимающий сокет, будет. Если приложение-отправитель использует порядок байтов с прямым порядком байтов, а приложение-получатель использует порядок байтов с прямым порядком байтов, вам придется выполнить необходимые реверсы байтов.

person pnswdv    schedule 10.05.2012