Как скопировать int в u_char *

, если вы не хотите кэшировать какие-либо данные, тогда вы можете использовать метатег ниже

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
0
задан Ahmed Hussein 24 February 2019 в 19:13
поделиться

1 ответ

Вы должны преобразовать целое число из любого внутреннего представления, используемого вашей платформой, в формат, который требует конкретный сетевой протокол, который требуется использовать при отправке по сети.

Это зависит от конкретного сетевого протокола, который вы пытаетесь использовать - проверьте документацию на предмет точного формата, в котором требуется указывать порты. Моя ставка будет в порядке сетевых байтов. Возможно, у вас есть такие функции, как htons для преобразования шорт в сетевой порядок байтов.

Еще одна проблема - сколько байтов int на вашей платформе? Сколько байтов использует сетевой протокол для экспресс-портов? Держу пари, числа 4 и 2 соответственно. Так что это еще одна проблема. (Или, возможно, это не так. Я не знаю точно, сколько байтов int находится на вашей платформе, и при этом я не знаю, с каким протоколом вы пытаетесь работать, поэтому я должен догадаться.)

Вы не можете просто написать код случайным образом и ожидать, что он будет работать. Вы должны подумать о том, что вы пытаетесь сделать, и понять требования.

Я бы порекомендовал взглянуть на спецификацию сетевого протокола, с которым вы работаете, и выяснить, какие именно байты в данных должны изменяться и на что они должны меняться. Затем напишите код для изменения каждого байта на правильное значение в соответствии со спецификацией сетевого протокола. Это обеспечит корректную работу вашего кода на любой платформе.

0
ответ дан David Schwartz 24 February 2019 в 19:13
поделиться