我定义了一个结构体
struct  GMMessage
  {
  int    MsPGID;
  int GMemberID[50];
  int GMemberCount;     
  };

在发送端的语句是:
GMMessage *GMember = new GMMessage();

…  //给GMember的成员赋值
ClientSocket1->Socket->SendBuf(GMember,sizeof(GMember));

请问在接收端应该用怎样的语句才能接收到这个数据,并读取出原来的GMember的各个成员变量的值?

应该可以的。通过分析数据。来做比较好噢

能不能给段接收端实现接收的具体代码呀?十分感谢~

该回复于2008-07-03 18:33:52被版主删除

那可以这么定义
struct Info1{
    …
};
struct Info2{
    …
};
struct GMMessage{
    BYTE Type;
    union{
        Info1 info1;
        Info2 info2;
    }
};

收到数据 更具Type的值.把Type后面的数据做强制转换赋值给相应类型的指针做处理;

假设 ServerSocket 端 收到数据 Socket->RecvBuffer(buf,Socket->ReceiveLength());

Info1 *p1;
Info2 *p2;
BYTE * pType = buf;
switch(*pType)
{
case X:
    p1 = (Info1 *)(pType ++);
    break;
case Y:
    p2 = (Info2 *)(pType ++);
    break;
}

p1 p2 就是数据的指针.

BYTE * pType = (BYTE*)buf; 这里也需要做下强制转换.

学习 。。

定义一个char变量也可以,但是我觉得最好是定义一个枚举类型的变量~!
根据是什么类型的数据,就做响应的处理
用一个switch语句来判断,先把你的数据包头取出来,判断是不是你要的数据、是哪种数据
然后对数据进行分析
GMMessage *GMemberRev = new GMMessage();
ServerSocket1->Socket->receiveBuf( GMemberRev , sizeof( GMMessage  ) );
当然端口、Ip那些要设置好了~!