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];
memset(tempstr,0,10);strcpy(tempstr,nRest);
itoa((atoi(nRest) + 32768),tempstr,10);
nRest = tempstr;
}fileR.Close();
delete []buffer;
}
}
closesocket(svrSock); 
楼主参考一下