>> Edit article
이름
제목
패스워드
: KLDP에서 소켓프로그래밍관련 문서를 보고 있는데.. : NBO에 관한 언급이 나오고 있습니다. : NBO가 무엇을 뜻하는지 모르겠습니다. : 아시는 분 알려주시면 감사하겠습니다. : 그럼 이만~~ : : -- : 모두들 건강하게.. Network Byte Order. 다음은 어느책에서 발췌한 내용입니다. 도서명은 기억상실되었습니다. 저자에게 죄송할따름입니다. -----------------발췌------------------- 바이트 순서에는 호스트 바이트 순서와 네트워크 바이트 순서 두가지가 있다. 호스트 바이트 순서는 컴퓨터가 내부 메모리에 숫자를 저장하는 순서를 말하 는데, 이것은 컴퓨터의 CPU 종류에 따라 다르다. 예를 들어 두바이트로 구성된 십진수 50146의 경우 hexa로 0xC3E2이며 이것은 x86계열의 CPU에서는 E2,C3의 순서로(즉, 하위바이트부터) 메모리에 저장되고 MC68000계열의 컴퓨터에서는 C3,E2의 순서로 메모리에 저장된다. 전자를 하위 바이트가 메모리에 먼저 잡힌다고 하여 little-endian이라하고 후자를 상위바 이트가 메모리에 먼저 잡힌다고 하여 big-endian이라고 한다. 네트워크 바이트 순서는 포트 번호나 IP주소와 같은 정보를 바이트 단위로 네 트워크에 전송하는 순서를 말하는데 네트워크 바이트 순서는 high-order바이트 부터 전송하기로 규정되어 있다. 컴퓨터 내부에서 사용하던 숫자를 네트워크로 전송하기전에 htons() - host to network short 의 약자임 - 함수를 사용하여 모두 네트워크 바이트 순서로 바꾸 어야 하고, 반대로 네트워크로 부터 수신한 데이터는 ntohs()함수를 사용하여 자신의 호스트 바이트 순서로 항상 바꾸어야 한다. 즉, 모든 컴퓨터가 네트워크 바이트 순서를 지켜 숫자를 전송함으로써 이것이 어떤 종류의 컴퓨터에서 만들어진 것인지 알 필요가 없도록 하는 것이다. 주의할 것은, 바이트 순서를 맞추는 것이 필요한 경우는 포트 번호 등의 숫자를 네트워크로 전할 때이며 텍스트 문서나, 바이너리 파일 등 일반 사용자 데이터는 바이트 변환이 필요가 없다는 것이다. 왜냐하면 일반 데이터는 메모리(버퍼)에 저장되었다가 바이트 단위로 메모리 앞 주소부터 차례대로 전송되며 수신측에서도 수신된 바이트를 메모리에 차례대로 저장하기 때문이다. -------------------------------------------외로워라 이네몸은 뉘와함께 놀아날꼬.
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved