相关程序代码如下:
CString RE="READY",CO="CONTINUE",AC="ACCEPT",OV="OVER";
char page[1023],pc;
CString check[2];
int i=0,t=0;
pc=page; //指向字符串,page是通过sock接受到的字符串,客户端是VB做的
while(t!=3)
{
if(t==0&&(*pc!='|'))
{
check[0]=check[0]+(*pc);//取得标示字
pc++;
} if(*pc=='|')
{
t++;
pc++;
} if((strcmp(check[0],RE)!=0)&&(*pc!=-52))
{
check[1]=check[1]+(*pc);//取得文件路径
pc++;
}
else
{
check[1]=check[1]+(*pc);//取得断点续传点
pc++;
} if(t==2&&*pc!=-52)
{
check[2]=check[2]+(*pc);//取得断点续传文件路径
pc++;
} if(*pc==-52)
break;
}
}
运行后,如果客户端发送"READY|admin\web.rar",check[0]接收为RAY,check[1]接受为EDweb.rar,怎样才能让check[0]="READY"以后,check[1]才接收数据。我还试过写成if(check[0]=="READY"……),也是这样,vc++中怎么比较字符串啊?在线等,解决立即给分。
CString RE="READY",CO="CONTINUE",AC="ACCEPT",OV="OVER";
char page[1023],pc;
CString check[2];
int i=0,t=0;
pc=page; //指向字符串,page是通过sock接受到的字符串,客户端是VB做的
while(t!=3)
{
if(t==0&&(*pc!='|'))
{
check[0]=check[0]+(*pc);//取得标示字
pc++;
} if(*pc=='|')
{
t++;
pc++;
} if((strcmp(check[0],RE)!=0)&&(*pc!=-52))
{
check[1]=check[1]+(*pc);//取得文件路径
pc++;
}
else
{
check[1]=check[1]+(*pc);//取得断点续传点
pc++;
} if(t==2&&*pc!=-52)
{
check[2]=check[2]+(*pc);//取得断点续传文件路径
pc++;
} if(*pc==-52)
break;
}
}
运行后,如果客户端发送"READY|admin\web.rar",check[0]接收为RAY,check[1]接受为EDweb.rar,怎样才能让check[0]="READY"以后,check[1]才接收数据。我还试过写成if(check[0]=="READY"……),也是这样,vc++中怎么比较字符串啊?在线等,解决立即给分。
解决方案 »
- 求教VC中计算二重积分的算法程序
- 求助~mfc 调用 PHP WEB
- 急急!!!!!!!!!!!!!unsigned转换为char
- 在mfc里面如何创建文件 比如*.wes这样一个文件
- CTreeCtrl 的问题。帮帮忙!!
- 请问如何在设备描述表中设置画直线的直线宽度,我想把线条画的粗一点
- afxMessageBox()问题!
- VC2005/MFC 我仅仅是更改了对话框上的按钮的ID,结果就出现一个错误!
- 请教几个关于VFW方面的问题,望高手指点
- 圣诞节平安夜友情大派送!!!
- 用CreatePen创建的画笔当线条宽度大于1时就成实线了,怎样使任意宽的线条都是虚线?
- activeX控件不能正常显示,谁遇到过?
check[1]=pc;
nPos=check[1].Find(RE,0);
if(nPos>0)
{
check[1]=check[1].Right(check[1].GetLength()-nPos-1);
nPos=check[1].Find(RE,0);
if(nPos>0)
{
check[2]=check[1].Right(check[1].GetLength()-nPos-1);
check[1]=check[1].Left(nPos);
}}
还有,check[1]=check[1].Right(check[1].GetLength()-nPos-1);以后再用nPos=check[1].Find(RE,0);,是找不到RE的,后面的就不会执行了。
估计我的理解还有问题,不过你的方法比我的要好多了,应该没问题了。