请问如何将这个数据包进行分解,然后放到数据结构中。

lizhiwo_wo 2004-08-03 07:54:04
/**********************************************************************
定义包头字段长度
***********************************************************************/
#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##";
请问如何将这个数据包进行分解,然后放到数据结构中。请帮我写出源码!!
...全文
150 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
meinan 2004-08-07
  • 打赏
  • 举报
回复
受益无穷!
luckyfool 2004-08-06
  • 打赏
  • 举报
回复
send(s,(char*)Packet_Head,sizeof(Packet_Head),0)
oyljerry 2004-08-06
  • 打赏
  • 举报
回复
那么如何发送一个数据结构呢?
HuangRG 2004-08-06
  • 打赏
  • 举报
回复
char buff[RECV_SIZE];
recv(s, buff, sizeof(buff), 0);

Packet_Head *p = (Packet_Head*)buff;
通过对p操作可以得你想要的数据了.
醉马不肖 2004-08-03
  • 打赏
  • 举报
回复
memcpy
放入一个list里不就行了吗?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧