수신 데이터, 바이트 순서 및 정렬을 '직렬화'reinterpret_cast 우리는 POD는 구조체 말을 가지고 있고, 나는이 할 경우 최종
char* ptr = reinterpret_cast<char*>(A);
char buf[20];
for (int i =0;i<20; ++i)
buf[i] = ptr[i];
network_send(buf,..);
잡 원격 상자를 종료하는 경우, 반드시 동일한 하드웨어되지 않습니다 또는 OS, 나는 안전하게 '때 unserialize'에이 작업을 수행 할 수 있습니다
void onRecieve(..char* buf,..) {
A* result = reinterpret_cast<A*>(buf); // given same bytes in same order from the sending end
는 '결과는'항상 유효 할 것인가? C++ 표준은 POD 구조로 상태를 바꿉니다. reinterpret_cast의 결과는 첫 번째 멤버를 가리켜 야하지만, 수신 끝이 다른 플랫폼이라 할지라도 실제 바이트 순서가 정확함을 의미합니까?
에 대한 컴파일러 핸들을 templatefor이 사용하고시키는 고려할 수 있습니다. 한 플랫폼이 빅 엔디안이고 다른 플랫폼이 리틀 엔디안 인 경우를 고려하십시오. [네트워크 바이트 순서] (http://en.wikipedia.org/wiki/Endianness#Endianness_in_networking)이 매우 문제가 발생했습니다 ... – Cameron
패딩은 플랫폼에 따라 다를 수도 있습니다 – bdonlan