我在从 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/