c++ 객체 직렬화 관련 질문2
글쓴이: balgarac1 / 작성시간: 목, 2015/11/26 - 5:38오전
class CPacketHeader { public: CPacketHeader(); virtual ~CPacketHeader(); virtual void CShowPacket() = 0; }; class CLoginAuthReqPacket : CPacketHeader { public: CLoginAuthReqPacket(); ~CLoginAuthReqPacket(); void CShowPacket(); private: UB2 msg_type; SCHAR db_user[33]; SCHAR password[33]; SCHAR program_name[33]; SCHAR db_name[33]; };
protobuf 에 관련해서 찾아보다가 제가 짠 클래스는 보내줄 수 없는 것 같아서 질문 드립니다.
protobuf로 멤버 함수까지 있는 클래스를 직렬화 시켜서 네트워크 상으로 보내줄 수 있는 방법이 있나요??
Forums:
...
Protocol buffer에 RPC를 지원하는 기능이 있기는 있습니다.
> https://developers.google.com/protocol-buffers/docs/proto?hl=en#services
하지만 별로 쓰는 사람이 없는 걸로 알고 있고, 이걸 쓰려면 프로그램 전체 구조를 프로토콜 버퍼를 중심으로 뜯어고쳐야 하기 때문에 원하시는 동작을 하지는 않으리라 봅니다.
프로토콜 버퍼는 .proto 파일을 작성해서 클래스를 따로 정의해야 합니다. (그러면 자동으로 C++ 클래스를 만들어줍니다.) C++에서 사용자가 정의한 클래스를 인식하는 기능은 없습니다.
혹시 정확히 어떤 일을 하는 프로그램을 만들고 싶으신
혹시 정확히 어떤 일을 하는 프로그램을 만들고 싶으신 건가요? 직렬화된 객체를 사용한다가 진짜로 해결하고 싶은 문제의 정답이 아닐 수도 있습니다
아..
답변 감사드립니다.
클라이언트에서 메세지를 치면 프록시 게이트웨이를 거쳐서 서버로 갔다가 서버에서 응답해주는 것을
프록시 게이트웨이로 보내고 다시 프록시 게이트웨이가 클라이언트에게 응답을 전송해주는 프로그램을 만들고 있습니다.
중간에 프록시 게이트웨이만 c++이고 클라이언트와 서버는 c입니다. 이렇게 짠 것은 요구사항이 그랬기 때문입니다....
로그인 할 때나 메세지를 보낼 때 가변길이의 패킷을 주고받으면서 메세지를 송 수신하는데
게이트웨이에서 지금 있는 6개 정도의 메세지 타입을 다형성을 적용시켜서 처리하라는 이상한 요구?를 받았습니다.
그러다보니 객체를 전송해야 하는 상황이 되었고 방법을 찾던 중이었습니다...
하지만 지금은 이 방법은 아닌 것 같다는 생각이 듭니다...
댓글 달기