char *data = (char *)th + sizeof(tcp_header);//得到数据的起始地址 char *Originaldata = NULL;
char *GetContext=NULL;
Originaldata = data;
GetContext = data;
char Context[1000]={0};
char kind[20]={0};
Get_EmailContext(GetContext,Context,kind);
//这个地方 data 的指针没有变动
if (strlen(Context) > 0){
//在这个地方data就往后移动了 char *p =NULL;
p=Context;
int psize = strlen(p); //结尾符号需要去掉
int iCount= 0; //判断P是否只有空格,如果是的话,则不需要往下执行
while(*p)
{
if (*p==32)
iCount ++;
p++;
}
if (psize!=iCount )
{
if(lookup->next != NULL) //已有纪录
{
Get_InfoNext(ih, sport, dport, Originaldata, lookup, 2,Context,kind);
}
else//无记录,新的邮件 第一次跑得时候进了下面代码得到 lookup和head_in
{
//检测邮件头
Get_InfoFirst(ih, sport, dport, Originaldata, lookup, 2,Context,kind);
}
}
}大家帮我看看 Originaldata 和data的指针为什么往后移动了呢
char *GetContext=NULL;
Originaldata = data;
GetContext = data;
char Context[1000]={0};
char kind[20]={0};
Get_EmailContext(GetContext,Context,kind);
//这个地方 data 的指针没有变动
if (strlen(Context) > 0){
//在这个地方data就往后移动了 char *p =NULL;
p=Context;
int psize = strlen(p); //结尾符号需要去掉
int iCount= 0; //判断P是否只有空格,如果是的话,则不需要往下执行
while(*p)
{
if (*p==32)
iCount ++;
p++;
}
if (psize!=iCount )
{
if(lookup->next != NULL) //已有纪录
{
Get_InfoNext(ih, sport, dport, Originaldata, lookup, 2,Context,kind);
}
else//无记录,新的邮件 第一次跑得时候进了下面代码得到 lookup和head_in
{
//检测邮件头
Get_InfoFirst(ih, sport, dport, Originaldata, lookup, 2,Context,kind);
}
}
}大家帮我看看 Originaldata 和data的指针为什么往后移动了呢
指针地址变了么?
//这个地方 data 的指针没有变动
if (strlen(Context) > 0){
//在这个地方data就往后移动了 !!
========================================
data 值改变了??
我想问一下你是如何知道这个信息的?我想是不是什么地方搞错了?
Get_EmailContext(GetContext,Context,kind);
//这里输出 data 的值看看
if (strlen(Context) > 0){
//这里输出 data 的值看看