4
Difference between htons() and htonl()?
(lemmy.ml)
If I understood correctly, the difference is that the returned value is either uint16_t or uint32_t. Otherwise they look the same based on the headers and documentation.
But why two different functions? If I recall correctly, port address can be between 0 to 65535, which will fit under uint16_t
. What use would uint32_t
have? Is there any other use for htonl()
?
I don't usually use networking in C or C++, so I can't say for sure. But I did I find this quote that might explain it:
The reasons for having both 16 and 32 bit functions is that IP and TCP headers use a mix of 16-bit fields like port numbers along with 32-bit IPv4 addresses.
Everything related to the C programming language.