ukk1211
1k
2021-01-26 23:29:59
1
136

소켓통신 빅엔디안 질문입니다.


우리가 대부분 쓰는 Intel CPU는 리틀엔디안을 사용하는데요.

TCP/IP 소켓통신에서 윈속기준 hton* 등의 함수는 빅엔디안으로 통일시켜줍니다.

따라서 hton 함수를 통해 0x1234를 인자로 전달하면 0x3412가 됩니다. 

(메모리에는 0x34가 0x12보다 앞에 위치할 것입니다.)

이건 대부분의 PC가 리틀엔디안을 쓰기 때문에 빅엔디안으로 바뀌면서 바뀌는거 같은데요.

애초에 빅엔디안을 사용하는 환경에서는 hton* 함수를 사용해도 바이트 정렬이 바뀌지 않나요?
0x1234 ->hton 함수 적용 0x1234

0
  • 답변 1

  • 엡실론
    2k
    2021-01-27 01:01:51

    네. hton은 host byte order를 network byte order로 변경합니다. host = network이면 아무일도 일어나지 않습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.