我需要发送一个Network Order,简称为使用Java编写的游戏服务器。我阅读了网络订单,但是我无法找到有关在数据前发送的短消息的任何详细信息。有人可以向我解释它是什么,以及如何使用Java将其发送给客户端?Network Order short(Java)
3
A
回答
6
Java NIO字节缓冲区支持更改字节顺序。因此网络字节顺序是Big Endian。
// 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);
字节顺序是存储大于单个字节的数值字节的顺序。有两种风格的Big Endian(最重要的字节在前)和Little Endian(最低有效字节在前)。
1
在java中,short int是一个2字节的数量。网络字节顺序首先发送高位字节,然后发送下一个最高位字节,依此类推,最后发送低位字节。如果你有一个OutputStream o
和short i
,然后
o.write((i >> 8) & 0xff);
o.write(i & 0xff);
发送网络字节顺序短。我推荐使用DataOutputStream
,它有一个方法writeShort()
(和writeInt
,writeLong
等),它会自动按网络字节顺序写入。
0
你可以用DataOutputStream封装你的OutputStream。可以使用DataOutputStream.writeShort。按合同,该方法按网络顺序写入数据。
相关问题
- 1. Try-catch short-circuit/fall-through java
- 2. java将int转换为short
- 3. 的Java实例Short对象在Java中
- 4. Foldl for short with short circuiting
- 5. mysql short union
- 6. Java - Reverse Word Order,Vector
- 7. 将字节[]读取为unsigned short Java
- 8. 将MongoDB BasicDBList转换为Java short [] Array
- 9. Java如何使用inputstream读取unsigned short?
- 10. 将int转换为unsigned short java
- 11. 如何在java中存储unsigned short?
- 12. Java HashSet和数据类型Short,incompatibility?
- 13. LINQ:不能将short转换为short吗?
- 14. Mobile Adhoc NETwork
- 15. Ionic Network type = null
- 16. 引起:java.lang.IllegalArgumentException:provider = network
- 17. Google Affiliate Network API
- 18. WinService,startup和network
- 19. Cast char to short
- 20. C++ short *到VARIANT_BOOL *
- 21. Tablecell click short delay
- 22. Rails short“time_ago_in_words”
- 23. Stream of short []
- 24. 解析/ etc/network/interfaces
- 25. npm“error network getaddrinfo ENOTFOUND”
- 26. PyAudio Over Network崩溃
- 27. Gitlab CI Docker Network timeout
- 28. Network timeout..cannot pull images
- 29. C#short if语句
- 30. MySQL,Short WHERE查询