htons
과 ntohs
이 모두 표준 라이브러리에 존재하는 이유를 모르겠습니다. 그들은 똑같은 일을합니다 - 제가 어떻게 든 혼란스럽지 않으면!왜`htons`와`ntohs`가 모두 존재합니까?
htonl
및 ntohl
에 대해서도 마찬가지입니다.
htons
과 ntohs
이 모두 표준 라이브러리에 존재하는 이유를 모르겠습니다. 그들은 똑같은 일을합니다 - 제가 어떻게 든 혼란스럽지 않으면!왜`htons`와`ntohs`가 모두 존재합니까?
htonl
및 ntohl
에 대해서도 마찬가지입니다.
그들은 데이터가 호스트 또는 네트워크 순서인지 여부를 독자에게 알려주는 자체 문서화 코드를 만듭니다.
이것은 기계가 하나 이상의 간단한 바이트 스왑이 아닌 빅 엔디안 또는 리틀 엔디안 외의 비정상적인 일이있는 경우를위한 것입니다.
예를 들어, 값 경우 0B 0C 0D 0A
0x0A0B0C0D
내부적으로 다음 htonl
이 표현을 전달하는 0x0A0B0C0D
을 반환하지만 ntohl
는 0x0C0D0A0B
을 반환 나타내었다.
나는 그러한 표현을 가진 플랫폼을 알지 못하지만 호스트 간 네트워크와 네트워크 간 호스트를위한 별도의 기능이있을 수 있습니다.
나는이 경우도 생각하고 있었지만 *** 비대칭 *** 바이트 순서는 마약 중독성이있는 칩 디자이너에게 답을 남기지 않았다. ;-) – alk