Wenn ich Beispiele für Htonl nachschlagen, gibt es immer eine uint32_t. Wenn ich htotl in VS2015 mit Winsock2.h aufrufen, wird jedoch eine u_long zurückgegeben.Verwendung von htonl/ntohl auf einer 32-Bit-Ganzzahl, die über einen Socket gesendet wird
Auf meinem Computer, wenn ich für 32 Bit und für 64 Bit kompiliere, bekomme ich, dass die Größe eines u_long 4 Bytes ist. Ich habe online gelesen, dass in einer 64-Bit-Architektur ein Long 8 Bytes sein sollte. Wird dies jemals der Fall sein? Ich bin besorgt, dass ich Kompatibilitätsprobleme haben werde, wenn ein u_long nicht die gleiche Menge an Bytes wie uint32_t ist, wenn die Daten über den Socket gesendet werden sollen.
TL; DR - Wird eine u_long immer 4 Bytes lang sein? Wenn nicht, wie sollten Sie zuverlässig eine 32-Bit-Ganzzahl über einen Socket senden?