컴퓨터 공부/네트워크 프로그래밍

[6월 5일 2교시] Object Serialization

려리군 2009. 6. 5. 20:24

객체 직렬화(Object Serialization)

네트워크로 전송하거나 파일로 저장하기 위해 스트림으로 만드는 과정.(streamatize)

역직렬화 : 스트림의 정보를 통해 객체를 복구한다.


스트림 : 1차원 배열. (파일을 다 보냈다는(끝을 알리는) 신호를 보낸다.)


한 번에 최대로 보낼 수 있는 양(송신버퍼) : 8KB

파일의 끝 : EOF(1A)


※ 프로그래밍 언어 (차원에서)를 통해서 자동화하여 직렬화/역직렬화를 수행한다.

1. 그러므로 자동화를 하기 때문에 서버/클라이언트가 서로 동일한 언어를 사용해야 한다.

2. 서로 어떤 객체를 주고 받는 지 예측할 수 있어야 한다.

자바 : full automation

MFC : half automation


네트워크 소스 분석

BOOL m_bClose : 메세지의 끝인가 아닌가.

CStringList m_msgList : 메세지를 덩어리로 관리한다.

CObject의 기능

객체 검사(assert등), RTTI, 직렬화

CString : 4GB까지 문자열을 저장할 수 있는 객체.


class CSocketFile:public CFile

일반적으로 (파일에서)직렬화를 수행할 때는 CArchive클래스를 이용한다.

직렬화는 파일 클래스 기반이기 때문에 CSocketFile을 이용한다.


CArchive는 Store(Send), Load(Recv)로 구분된다.

※ 전송할 데이터(객체)에 대해서는 프로그래머가 구현해야 한다.