【问题标题】:Java - how to interpret char[] array as int?Java - 如何将 char[] 数组解释为 int?
【发布时间】:2014-04-10 23:01:13
【问题描述】:

我从 9 个整数的 C++ 客户端缓冲区发送到我的 Java 服务器。我正在使用 read(char[] cbuf) 函数来阅读此消息。

我的问题是如何将这个 cbuf 解析/解释为整数数组。在 C++ 中这很容易,但在 Java 中我不能使用指针等等 :)

感谢您的帮助:)

【问题讨论】:

  • 你会如何在 C++ 中做到这一点?
  • 字符是 2 个字节,整数是 4 个字节。您是否发送 36 个字节,即。 18个字符,即。 9 个整数?
  • 另外,您使用的是哪种read(char[]) 方法?它定义在哪个类中?
  • Java 的 char 不能与 C++ 的 char 互操作:在 Java 中,chars 是 16 位值;在 C++ 中,chars 是 8 位值。您可以尝试创建一个DataInputStream 并通过调用readInt 从中读取ints,但如果客户端的字节序与服务器的字节序不匹配,则可能无法正常工作。
  • @SotiriosDelimanolis 我认为他们正在尝试使用Reader,这似乎是他们不应该使用的(除非他们实际上将这些整数作为文本数据发送)。

标签: java c++ arrays sockets parsing


【解决方案1】:

你为什么要读入一个 char 数组?读入一个字节数组并使用 java 的 nio 包中的 ByteBuffer..

ByteBuffer.wrap(my_byte_array).order(ByteOrder.LITTLE_ENDIAN).getInt();

【讨论】:

    猜你喜欢
    • 2013-12-11
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    相关资源
    最近更新 更多