【发布时间】: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