Внутренние числа Java всегда располагаются в сетевом байтовом порядке, даже в системах, где собственные целые / двойные числа отсутствуют. Это означает, что вы можете преобразовать любое число, поступающее в Java, с помощью любого из базовых потоков ввода, которые выполняют преобразование такого типа - которые реализуют java.io.DataInput. ByteBuffer также работает, если вы используете java.nio.Channel, но там вы можете изменить порядковый номер (ByteBuffer.order()
), хотя по умолчанию это правильно для сетевого порядка байтов и внутреннего хранилища Java.
Кстати, я думаю, вы хотите использовать htons
, но в примере вы показываете ntohs
. При отправке из C ++ вы хотите конвертировать h ost заказ в n и т.д. При получении с Java (или любого клиента) ваш сервер конвертируется обратно, используя ntohs
.