我这样定义的deliver短信的结构体:
typedef struct
{
char            UserNumber[21];
char        SPNumber[21];
unsigned char   TP_pid;
unsigned char   TP_udhi;
unsigned char   MessageCoding;
unsigned int    MessageLength;
char            MessageContent[147];
char            Reserve[8];
}SGIP_DeliverBody;
我在SMG模拟器上发送MO消息(MessageContent用的ASCII编码方式),先Receive消息头部,然后Receive了deliver的消息体,可是其他字段都接收正确,只有MessageLength和MessageContent的内容不能正确的显示,同样的方法我用delphi写就可以得到正确接收,请问大家是怎么回事啊

解决方案 »

  1.   

    我在接收ASCII编码的消息时,需要作出怎么样的处理才可以正确的接收啊?
      

  2.   

    MessageLength 是网络字节序
    MessageContent 编码方式应该是UCS-2都需要转.
      

  3.   

    MessageLength  我用ntohl转换了,可是得到的消息长度还是不正确的啊
      

  4.   

    MessageLength  是BYTE吧,我记得。不需要转
      

  5.   

    看错,你看看是不是字节对齐的问题#pragma pack(1)typedef struct
    {
    ....
    }
      

  6.   

    ERR0RC0DE() 不太明白你说的意思啊,我是新手,不明白,能不能说的清楚一些