2012-05-10 2 views
0

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

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

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

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

ответ

1

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

+0

Приемник ожидает массив int того же размера. например, int x [4] –

0

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