Мне нужно отправить сетевой заказ для игрового сервера, который я пишу, используя Java. Я читал о сетевом порядке, но я не мог найти подробностей о коротком, который отправляется перед данными. Может кто-нибудь объяснить мне, что это такое, и как отправить его клиенту с Java?Сетевой заказ короткий (Java)
ответ
Буферы с байтами Java NIO поддерживают изменение порядка байтов. Таким образом, порядок сетевых байтов является большим эндианским.
// Allocate a big endian byte buffer
ByteBuffer bb = ByteBuffer.allocate(4096);
bb.order(ByteOrder.BIG_ENDIAN);
bb.putShort(12345);
// Write the buffer to an NIO channel
bb.flip();
channel.write(bb);
Порядок байтов - это порядок, в котором хранятся байты для числовых значений, превышающих один байт. Есть 2 аромата Big Endian (самый старший байт первый) и Little Endian (младший старший байт).
В java короткий int является 2 байтовым количеством. Сетевой порядок байтов сначала отправляет старший байт, а затем следующий старший байт и т. Д., Причем последний байт отправляется последним. Если у вас есть OutputStream o
, и short i
, затем
o.write((i >> 8) & 0xff);
o.write(i & 0xff);
отправить короткое замыкание в сетевом порядке байтов. Я рекомендую использовать DataOutputStream
, который имеет метод writeShort()
(и writeInt
, writeLong
и т. Д.), Которые автоматически записываются в сетевой порядок байтов.
Вы можете обернуть свой OutputStream DataOutputStream.
Затем вы можете использовать DataOutputStream.writeShort. По контракту метод записывает данные в сетевом порядке.
- 1. Сетевой поток TcpClient, смешающий заказ моих данных
- 2. Java, Enum: (короткий) - someNumber
- 3. Java-код объяснения - короткий
- 4. Сетевой прослушиватель в Java
- 5. Java сетевой дизайн игры
- 6. Java параллелизм/сетевой подход
- 7. java JPA более короткий UUID?
- 8. java преобразование int в короткий
- 9. шифрование сетевой связи в java
- 10. Сетевой сервер Java и TIME_WAIT
- 11. Простой сетевой чат в Java
- 12. Java Set сохранить заказ?
- 13. Java: заказ исключение ошибок
- 14. Java: ArrayList, как заказ
- 15. Java - учебный заказ
- 16. Заказ приоритетаQueue в Java?
- 17. сетевой сетевой диск недоступен
- 18. Подавить сетевой сетевой портал
- 19. Заказ слушателей TestNG (java Webdriver)
- 20. Java на заказ Обработка исключений
- 21. java Affine Transform правильный заказ
- 22. Java сокет сообщение поступает заказ
- 23. Java аргументы апач CLI заказ
- 24. Обработчик аннотации Java, обрабатывающий заказ
- 25. Короткий, реализация Java дерева суффиксов и использования?
- 26. Java примитивный тип данных «короткий» показывает 0
- 27. Преобразование строки в короткий массив - Java
- 28. Java: как добавить короткий ключ к компоненту
- 29. Unity3D HLAPI сетевой сетевой плеер
- 30. Разработка сетевой/клиентской сетевой игры