我正在尝试新的 C++ 套接字编程。我在理解 htons、htonl 和相关函数的功能时遇到了一些困难。我阅读了一些文件,但我的问题仍然如下,
对于单个服务器和单个客户端,我在两端都使用 htons 作为端口号,并且代码工作正常。即使我不使用这些功能并且我的两个服务器客户端都是基于 Intel 的 64 位机器,代码也可以正常工作。但是如果多个客户端尝试连接我的服务器并且客户端使用不同的数据存储格式怎么办。例如,x86 是 little-endian,而 ARM A-53 是 little-endian 和 big-endian 等,其中一些是 32 位、16 位或 64 位等。我的服务器是 64 位。所以我现在很困惑我必须使用哪些功能统一服务于所有目的?或者,我必须始终检测客户端类型并将其数据格式(端口号)转换为 64 位(因为我的服务器是 64 位),然后使用 htonl() 函数到达服务器。