网络订单简称 (Java)

发布于 2024-08-16 09:48:12 字数 114 浏览 2 评论 0原文

我需要发送一个网络订单,简称为我使用 Java 编写的游戏服务器。我阅读了有关网络顺序的信息,但找不到有关数据之前发送的短路的任何详细信息。有人可以向我解释一下它是什么,以及如何使用 Java 将其发送给客户端吗?

I need to send a Network Order short for a game server I'm writing using Java. I read about network order, but I couldn't find any details about a short that is sent before the data. Could someone explain to me what it is, and how to send one to a client with Java?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

眼睛会笑 2024-08-23 09:48:12

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(最低有效字节在前)。

Java NIO bytes buffers have support for changing the byte order. Network byte order is Big Endian therefore.

// 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);

Byte Order is the order in which the bytes for numerical values that are larger than a single byte are stored. There are 2 flavours Big Endian (most significant byte first) and Little Endian (least significant byte first).

暮年 2024-08-23 09:48:12

在java中,short int是一个2字节的量。网络字节顺序首先发送高位字节,然后发送下一个最高位字节,依此类推,最后发送低位字节。如果您有一个OutputStream o 和一个short i,则按

o.write((i >> 8) & 0xff);
o.write(i & 0xff);

网络字节顺序发送short。我建议使用 DataOutputStream ,它有一个方法 writeShort() (以及 writeIntwriteLong 等),该方法自动按网络字节顺序写入。

In java, a short int is a 2 byte quantity. Network byte order send the high-order byte first, followed by the next highest-order byte and so on, with the low order byte sent last. If you have an OutputStream o, and a short i, then

o.write((i >> 8) & 0xff);
o.write(i & 0xff);

send the short in network byte order. I recommend using a DataOutputStream which has a method writeShort() (and writeInt, writeLong, etc.) which automatically write in network byte order.

半仙 2024-08-23 09:48:12

您可以使用 DataOutputStream 包装您的 OutputStream。

然后,您可以使用 DataOutputStream。写短。根据约定,该方法按网络顺序写入数据。

You can wrap your OutputStream with DataOutputStream.

You can then use DataOutputStream.writeShort. By contract the method writes data in network order.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文