socket 实现的 ftp 上传有关问题

socket 实现的 ftp 上传问题
代码如下:

CString   filename;  
CFileFind   finder;  
int   filelength; //   保存文件长度

BOOL   bWorking   =   finder.FindFile( "*.jpg ");  

CString   str;
GetDlgItemText(IDC_EDIT1,str);

SOCKADDR_IN   clisa1;
clisa1.sin_addr.S_un.S_addr   =   inet_addr( "192.168.1.66 ");
clisa1.sin_family   =   AF_INET;
clisa1.sin_port   =   htons(atoi(str));

connect(svrSock,(SOCKADDR*)&clisa1,sizeof(SOCKADDR));

while(bWorking)
{
//   循环取得需传送的文件名
bWorking=finder.FindNextFile();
filename=finder.GetFileName();

//   取得该文件的大小
filelength   =   finder.GetLength();

//   //通过命令通道发送   size   命令判断服务器上是否存在该文件,如果存在取得文件大小
send(cliSock, "size   "   +   filename   +   "\r\n ",strlen( "size   ")   +   filename.GetLength()   +   strlen( "\r\n "),0);

char   buffer1[100];
memset(buffer1,0,100);

recv(cliSock,buffer1,100,0);

CString   sizestr   =   buffer1;
CString   returncode   =   sizestr.Left(3);

char   tempstr1[10];
memset(tempstr1,0,10);

int   nCount;
CString   nRest;

//   判断是否已经存在该文件
if(returncode   ==   "213 ")
{
strcpy(tempstr1,sizestr.Mid(4));
nCount   =   filelength   -   atoi(tempstr1);
nRest   =   tempstr1;
}
else   if(returncode   ==   "550 ")
{
nCount   =   filelength;
nRest   =   "0 ";
}


//   需要续传
if(nCount   >   0)
{
int   cyclenum;

if(nCount%32768   !=   0)
{
cyclenum   =   nCount/32768   +   1;
}
else   if(nCount%32768   ==   0)
{
cyclenum   =   nCount/32768;
}

CFile   fileR(filename,CFile::modeRead|CFile::typeBinary);
char   *buffer   =   new   char[32768+1];

for(int   i   =   0;   i   <   cyclenum;   i++)
{  
memset(buffer,   0x00,   (32768+1)*sizeof(BYTE));
//通过命令通道发送命令
send(cliSock, "rest   "   +   nRest   +   "\r\n ",strlen( "rest   ")   +   nRest.GetLength()   +   strlen( "\r\n "),0);
memset(buffer1,0,100);
recv(cliSock,buffer1,100,0);
AfxMessageBox(buffer1);

                                                                          //通过命令通道发送命令
send(cliSock, "appe   "   +   filename   +   "\r\n ",strlen( "appe   ")   +   filename.GetLength()   +   strlen( "\r\n "),0);
memset(buffer1,0,100);
recv(cliSock,buffer1,100,0);
AfxMessageBox(buffer1);

fileR.Seek(atoi(nRest),CFile::begin);
fileR.Read(buffer,32768);

int   err   =   send(svrSock,buffer,32768+1,0);     //通过数据通道发送数据  

char   tempstr[10];