请问如何将这个数据包进行分解,然后放到数据结构中。
/**********************************************************************
定义包头字段长度
***********************************************************************/
#define SOCKET_LENGTH_LENGTH 5
#define SOCKET_CATEGORY_LENGTH 2
#define SOCKET_SUB_COMMAND_LENGTH 2
#define SOCKET_OPCODE_LENGTH 4
#define SOCKET_SEQNO_LENGTH 10
#define SOCKET_SPID_LENGTH 4
#define SOCKET_SERVERID_LENGTH 5
#define SOCKET_OPERATEID_LENGTH 5
#define SOCKET_CALLINGNUMBER_LENGTH 20
#define SOCKET_CALLEDNUMBER_LENGTH 20
#define SOCKET_ERROR_LENGTH 5
#define SOCKET_CRY_TYPE_LENGTH 5
#define SOCKET_KEY_NO_LENGTH 5
/**********************************************************************
定义包头数据结构
***********************************************************************/
typedef struct PACKET_HEAD_t
{
unsigned int PACKETLENGTH; // 此域表示消息包的长度,包括包头和包体 ,不包括包头标志@@和包尾标志##
unsigned char CATEGORY[SOCKET_CATEGORY_LENGTH+1];
unsigned char SUBCOMMAND[SOCKET_SUB_COMMAND_LENGTH+1];
unsigned char OPCODE[SOCKET_OPCODE_LENGTH+1];
unsigned char SEQNO[SOCKET_SEQNO_LENGTH+1];
unsigned char SPID[SOCKET_SPID_LENGTH+1];
unsigned char SERVERID[SOCKET_SERVERID_LENGTH+1];
unsigned char OPERATEID[SOCKET_OPERATEID_LENGTH+1];
unsigned char CALLINGNUMBER[SOCKET_CALLINGNUMBER_LENGTH+1];
unsigned char CALLEDNUMBER[SOCKET_CALLEDNUMBER_LENGTH+1];
unsigned char RESULT[SOCKET_ERROR_LENGTH+1];
unsigned char CRYTYPE[SOCKET_CRY_TYPE_LENGTH+1];
unsigned char KEYNO[SOCKET_KEY_NO_LENGTH+1];
}PACKET_HEAD, * Packet_Head;
有一个数据包如下
char buff[1024]="@@97 0101010165538 0121000880000113900044406 125912101 00000 GGGG##";
请问如何将这个数据包进行分解,然后放到数据结构中。请帮我写出源码!!