더북(TheBook)

3장에서 언급한 대로, 버클리 소켓 API에선 send()sendto() 함수를 써서 다른 호스트로 데이터를 보낸다. 각 함수를 호출할 땐 전송할 데이터의 위치를 가리키는 포인터를 인자로 넣어준다. 별다른 직렬화 코드 없이 RoboCat 객체를 다른 호스트로 전송하는 가장 나이브한, 시쳇말로 단순무식한 방법은 다음과 같다.

void NaivelySendRoboCat(int inSocket, const RoboCat* inRoboCat)
{
    send(inSocket,
        reinterpret_cast<const char*>(inRoboCat),
        sizeof(*inRoboCat), 0);
}
 
void NaivelyReceiveRoboCat(int inSocket, RoboCat* outRoboCat)
{
    recv(inSocket,
        reinterpret_cast<char*>(outRoboCat),
        sizeof(*outRoboCat), 0);
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.