본문 바로가기

네트워크

공부하면서 빠트린 것들 끄적끄적 - 빅엔디안, 리틀엔디안

4바이트 변수 i = 15 일 때,

 

[주소]

0x00 0x00 0x00 0x15   : 빅 엔디안

0x15 0x00 0x00 0x00   : 리틀 엔디안

 

빅 엔디안 : 시작 주소에 데이터의 최상위비트(MSB)가 저장됩니다.     -> 0x00

리틀 엔디안 : 시작 주소에 데이터의 최하위비트(LSB)가 저장됩니다.   -> 0x15

 

 

TCP/소켓 네트워크는 빅 엔디안을 사용하지만 인텔 계열 CPU는 리틀 엔디안을 사용하므로 

서버와 클라이언트 사이의 통신이 있을 때 변환이 필요합니다.

 

네트워크 -> 호스트(클라이언트) : 빅 엔디안 -> 리틀 엔디안     ntohl 또는 ntohs 함수 사용

호스트(클라이언트) -> 네트워크 : 리틀 엔디안 -> 빅 엔디안     htonl 또는 htons 함수 사용

l은 4바이트 long, s는 2바이트 short 형을 의미합니다.