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