我用socket来做通信,其中的数据结构比较多,我想把要发送的的数据打成一个包,然后在发送。比如:class CData  
{
public:
CData();
virtual ~CData();
int nType;          //包的类型,1=TAG1 ,2 =TAG2  ,3....
char *buffer; //当前的缓冲
int nsize; //当前缓冲的大小
         void  PutToBuffer(packet * p);  //把nType类型的包压到buffer中
         packet * GetFromBuffer();
};typedef struct tag1 {
char id[8];
char sex[2];
char naem[20];     
char message[256];
}TAG1;typedef struct tag2 {
char AA[16];
char BB[16];
char CC[256];
}TAG2;现在如何写成员函数 void  PutToBuffer(packet * p)和packet * GetFromBuffer();。或者有更好的方法。
目的是为了 send(socket,m_buffer.buffer,m_buffer.nSize);