當我查找htonl的示例時,它總是返回一個uint32_t。但是,當我使用Winsock2.h在VS2015中調用htonl時,它將返回u_long。在將通過套接字發送的32位整數上使用htonl/ntohl
在我的機器上,當我編譯32位和64位時,我得到一個u_long的大小是4個字節。我在線閱讀,在64位體系結構中,長度應該是8個字節。這會永遠如此嗎?我擔心如果u_long與uint32_t的字節數量不同,當數據通過套接字發送時,我會遇到兼容性問題。
TL; DR - u_long是否總是4個字節?如果不是,您應該如何可靠地通過套接字發送32位整數?