네트워크상에서 다른종류의 cpu를 가지고 있는 머신들사이에 데이타를 주고 받기 위해서는 반드시 데이타를 big endian 으로 바이트 오더링을 해야 합니다. 에를 들어 intel 머신은 little endian, 알파칩은 big endian으로 데이타를 처리하는 바이트순서가 다릅니다. 그래서 네트웍상의 데이타를 big endian로 정해놓고, little endian 머신들에서 데이타를 내보내떼는 little endian을 big endian으로 받을때는 big endian을 little endian으로 바이트 오더링을 하도록 하게 되어 있습니다.
그런데 4바이트 단위로 바이오더링을 해야하지 않나요? 아직은 32비트 머신들이 주종일덴테....
만약 동일한 인텔머신들만 데이타를 주고 받는다면 바이트 오더링 할 필요가 없겠죠
Re: Byte ordering을 준수해야 하는 이유
네트워크상에서 다른종류의 cpu를 가지고 있는 머신들사이에 데이타를 주고 받기 위해서는 반드시 데이타를 big endian 으로 바이트 오더링을 해야 합니다. 에를 들어 intel 머신은 little endian, 알파칩은 big endian으로 데이타를 처리하는 바이트순서가 다릅니다. 그래서 네트웍상의 데이타를 big endian로 정해놓고, little endian 머신들에서 데이타를 내보내떼는 little endian을 big endian으로 받을때는 big endian을 little endian으로 바이트 오더링을 하도록 하게 되어 있습니다.
그런데 4바이트 단위로 바이오더링을 해야하지 않나요? 아직은 32비트 머신들이 주종일덴테....
만약 동일한 인텔머신들만 데이타를 주고 받는다면 바이트 오더링 할 필요가 없겠죠
아무리봐도. 바이트 오더링이 아니라, 바이트 정렬로 보이는데요. :sho
아무리봐도. 바이트 오더링이 아니라, 바이트 정렬로 보이는데요. :shock:
높이 날다 떨어지면.
아푸다 ㅡ,.ㅡ
구현의 용이성을 따지자면 그냥 8byte일테지만...그럼 문제가 안될테고
구현의 용이성을 따지자면 그냥 8byte일테지만...그럼 문제가 안될테고...
해시함수, 압축을 써보시지요. size가 reserved시만 문제가 된다면...
아니면 2byte때 남는 2byte에 찡겨보네도 될것 같은데...
추가적인 비용이 들겠지만...
아니면 매우 귀찮은 일이 되겠네요...^^
Hello World.
[quote="비행소년"]아무리봐도. 바이트 오더링이 아니라, 바이트 정
생각해보니 그렇겠군요. 바이트 오더링 때문에 8바이트로 맞춘다는 말이 무슨 뜻일까
고민했습니다. ^^;
속편하게 인코딩된 텍스트로~
속편하게 인코딩된 텍스트로~
Re: Byte ordering을 준수해야 하는 이유
사이즈가 중요하다면 pragma pack(1)을 써서
그대로 보내세요... 문제 없을거예요...
http://www.korone.net QT 커뮤니티 사이트
댓글 달기