아래의 내용과 너무 혼동 스러울 때 나는 의심 스럽습니다. 그물에있는 다른 곳을 깨끗하게 처리하십시오.리틀 엔디안에서 ntohl() 대 htonl() 리틀 엔디 언
#include<stdio.h>
int main()
{
int a = 0x44332211;
printf("Network - 0x%x\n", htonl(a));// Host to network
printf("Host - 0x%x\n", ntohl(a));// Network to host
return 0;
}
출력 :
Network - 0x11223344
Host - 0x11223344
여기
htonl(0x44332211)
=> 난 엔디안 (LE)는 BE로 변환하고있다. 출력은 0x11223344
입니다. 나는 그것을 이해했다. 내 문제는 ntoh()
입니다. 지금 ntohl(0x44332211)
=> 뭐라고 요?
여기에서는 1 개의 터미널에서 두 명령을 모두 실행하고 있습니다. 따라서 네트워크에 호스트, 즉 hton()
은 네트워크에 내 터미널을 의미합니다. 그건 의미가 있습니다. 하지만 여기에 ntohl()
무엇을 의미합니까? ntohl()
우리가있는 경우 그림으로 온다 :
a PC A----(ie hton)sending data over network------>(ie ntoh) to PC B?
또한
ntoh
즉 네트워크 바이트 순서 빅 엔디안 기대하고있다. 친절하게 무엇을
ntohl()
의미 intepret 그 인쇄
0x11223344
같은 이유는
0x44332211
?