java - 如何通过套接字 C++ 服务器/Java 客户端发送 int

标签 java c++ sockets

我在从 Java 客户端向 C++ 服务器发送 int 时遇到问题。我不想更改服务器代码(我听说过一些关于 htonl 的信息)。现在从客户端 13928 (0011 0110 0110 1000) 发送,我在我的服务器上收到 6829568(0110 1000 0011 0110 0000 0000)。 Java 有没有类似于 htonl 的函数?

最佳答案

更改服务器代码。它坏了。

问题是服务器“理解”的格式实际上会根据其 CPU 架构变化。 Java 正在发送标准网络字节顺序,这是正确的做法 - 服务器然后必须 ntohl() 将其转换为其内部格式。更改客户端代码以包含关于服务器字节顺序的假设是一个非常非常糟糕的主意。

关于java - 如何通过套接字 C++ 服务器/Java 客户端发送 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10223257/

相关文章:

java - Apache 卢塞恩 : how to convert collection index to another format?

c++ - 什么时候可以从 C++ 中的析构函数中抛出异常?

c# - 编写TcpClient client = list.AcceptTcpClient();后程序无法打开。

c++ - 如何使用 QScintilla 和 C++ 使用自动完成功能?

c++ - 为什么 GDB 以八进制显示 char?

ios - Peertalk 套接字连接在尝试连接时返回 -1

python - EOFError : ran out of input. 尝试从套接字 pickle.loads 时出现此错误

java - 为什么有些框架拒绝放弃对古老 Java 版本的支持?

java - glsl 片段着色器矩形不会显示

java - 如何在executorCompletionService中使用concurrentHashMap?