组装命令
int combine_cmd(char *msg, int len)
{
if( NULL == msg )
{
Log(DEBUG,"msg error");
return ERROR;
}
char name[]="zhang3";
char password[]="zhang3";
char ip[]="192.168.2.200";
char ToName[]="li4";
char data[]="hi,i am zhang3!";
char SendMsg[1024]={0};
snprintf( SendMsg , sizeof(SendMsg)-1 ,
"^%s^%s^%s^%s^%s^%s" , ip,name,password,"send",ToName ,data );
memset(msg, 0x00, len);
strncpy( msg , SendMsg, len-1 );
//$ip$name$password$send$ToName$data
return OK;
}
int CmdParsing(char *msg)
{
//$ip$name$password$send$ToName$data
//命令解析
int i = 0 ;
char *pCh1 = NULL;
char *pCh2 = NULL;
char ip[40]={0};
char name[40]={0};
char password[40]={0};
char docall[40]={0};
char ToName[40]={0};
char data[1024]={0};
//extern char *strchr(const char *s,char c);查找字符串s中首次出现字符c的位置
char *parr[6]={ip ,name,password,docall,ToName,data};
//$ip$name$password$send$ToName$data
pCh1 = strchr( msg , '^' );
if( NULL == pCh1)
{
Log(DEBUG,"$ error");
return ERROR;
}
for( i = 0 ; i < 6 -1 ; i++ )
{
pCh1++;
pCh2 = strchr( pCh1, '^' );
if( NULL == pCh2)
{
Log(DEBUG,"$ error");
return ERROR;
}
strncpy( parr[i],pCh1 , 40-1);
parr[i][pCh2 - pCh1] = '\0';
pCh1 = pCh2 ;
}
pCh1++;
strncpy( parr[i],pCh1 , 1024);
for( i = 0 ; i < 6 ; i++ )
{
Log(DEBUG," parr[%d]=%s " , i , parr[i]);
}
//执行 操作,用map映射
return OK;
}