📄 vtft.cc
字号:
sprintf(strTmp,"%s/%s",strLocalPath,(char*)vastrDirList[iLoop]); mkdir(strTmp, 0700); } for (iLoop = 0; iLoop < iFln; iLoop++) { sprintf(strTmp,"%s/%s",strLocalPath,(char*)vastrFileList[iLoop]); } strcpy(strShowInfo,strTmp); return 0;}char* CvtFTC::ShowInfo ( ){ vmShowMutex.Lock(); strncpy(strShowBuf,strShowInfo,1024); strShowBuf[1024] = '\0'; vmShowMutex.Release(); return strShowBuf;}int CvtFTC::Upload( ){ int iError; int iPackID; int iFileIdx,iFileNum,iDirNum,iLoop; iPackID = 0; iDirNum = vastrDirList.size(); iFileNum = vastrFileList.size(); for (iLoop = 0; iLoop < iDirNum; iLoop++) { puchBuf = (guchar *)(psHostent->h_addr); sprintf(strHostAdd,"%u.%u.%u.%u",*puchBuf,*(puchBuf+1),*(puchBuf+2),*(puchBuf+3)); strcpy(strPort,"80"); iSock = socket(AF_INET, SOCK_STREAM, 0); sSoin.sin_family = AF_INET; sSoin.sin_addr.s_addr = inet_addr(strHostAdd); sSoin.sin_port = htons(atoi(strPort)); iError = connect(iSock, (struct sockaddr *)&sSoin, sizeof(sSoin)); iPackAttrib = 100; sprintf(strTmp,"%8d%s:%s",iPackAttrib,"mkdir",(char*)vastrDirList[iLoop]); iStrlens = strlen(strTmp); sprintf(chPostBuf,"POST /perl/fts.cgi HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: %d\r\n\r\n%s",iStrlens,strTmp); iBuflens = strlen(chPostBuf); write(iSock, chPostBuf, iBuflens); iSize = read(iSock, strTmp, sizeof(strTmp)); strTmp[iSize] = '\0'; close(iSock); vmShowMutex.Lock(); strncpy(strShowInfo,strTmp,iSize); strShowInfo[iSize]='\0'; vmShowMutex.Release(); usleep (100000); } for (iFileIdx = 0; iFileIdx < iFileNum; iFileIdx++){ vstrTmp = strLocalPath; vstrTmp += "/"; vstrTmp += vastrFileList[iFileIdx]; strcpy(strLocalFilePath,(char*)vstrTmp);/* iSize = 1024; vmShowMutex.Lock(); strncpy(strShowInfo,strLocalFilePath,iSize); strShowInfo[iSize]='\0'; //sprintf(strShowInfo,"iSock: %d hostadd: %s iError: %d",iSock,strHostAdd,iError); vmShowMutex.Release(); sleep(2);*/ ifUpload.open(strLocalFilePath,ios::in|ios::binary|ios::nocreate); puchBuf = (guchar *)(psHostent->h_addr); sprintf(strHostAdd,"%u.%u.%u.%u",*puchBuf,*(puchBuf+1),*(puchBuf+2),*(puchBuf+3)); strcpy(strPort,"80"); iSock = socket(AF_INET, SOCK_STREAM, 0); sSoin.sin_family = AF_INET; sSoin.sin_addr.s_addr = inet_addr(strHostAdd); sSoin.sin_port = htons(atoi(strPort)); iError = connect(iSock, (struct sockaddr *)&sSoin, sizeof(sSoin)); iPackAttrib = 100; sprintf(strTmp,"%8d%s:%s",iPackAttrib,"start",(char*)vastrFileList[iFileIdx]); iStrlens = strlen(strTmp); sprintf(chPostBuf,"POST /perl/fts.cgi HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: %d\r\n\r\n%s",iStrlens,strTmp); iBuflens = strlen(chPostBuf); write(iSock, chPostBuf, iBuflens); iSize = read(iSock, strTmp, sizeof(strTmp)); strTmp[iSize] = '\0'; close(iSock); vmShowMutex.Lock(); strncpy(strShowInfo,strTmp,iSize); strShowInfo[iSize]='\0'; vmShowMutex.Release(); usleep (10000); while (1) { puchBuf = (guchar *)(psHostent->h_addr); sprintf(strHostAdd,"%u.%u.%u.%u",*puchBuf,*(puchBuf+1),*(puchBuf+2),*(puchBuf+3)); strcpy(strPort,"80"); iSock = socket(AF_INET, SOCK_STREAM, 0); sSoin.sin_family = AF_INET; sSoin.sin_addr.s_addr = inet_addr(strHostAdd); sSoin.sin_port = htons(atoi(strPort)); iError = connect(iSock, (struct sockaddr *)&sSoin, sizeof(sSoin)); ifUpload.read(chFileBuf,10000); iCounts = ifUpload.gcount(); iPackID++; iPackAttrib = 200; sprintf(chPostBuf,"POST /perl/fts.cgi HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: %d\r\n\r\n",iCounts+16); iStrlens = strlen(chPostBuf); sprintf(strTmp,"%8d%8d",iPackAttrib,iPackID); memmove(&chPostBuf[iStrlens],strTmp,16); iStrlens = iStrlens + 16; memmove(&chPostBuf[iStrlens],chFileBuf,iCounts); iBuflens = iStrlens + iCounts; write(iSock, chPostBuf, iBuflens); iSize = read(iSock, strTmp, sizeof(strTmp)); strTmp[iSize] = '\0'; close(iSock); vmShowMutex.Lock(); strncpy(strShowInfo,strTmp,iSize); strShowInfo[iSize]='\0'; vmShowMutex.Release(); if (ifUpload.good()==0) { ifUpload.close(); break; } usleep(1000); } puchBuf = (guchar *)(psHostent->h_addr); sprintf(strHostAdd,"%u.%u.%u.%u",*puchBuf,*(puchBuf+1),*(puchBuf+2),*(puchBuf+3)); strcpy(strPort,"80"); iSock = socket(AF_INET, SOCK_STREAM, 0); sSoin.sin_family = AF_INET; sSoin.sin_addr.s_addr = inet_addr(strHostAdd); sSoin.sin_port = htons(atoi(strPort)); iError = connect(iSock, (struct sockaddr *)&sSoin, sizeof(sSoin)); iPackAttrib = 100; sprintf(strTmp,"%8d%s:%s",iPackAttrib,"end",(char*)vastrFileList[iFileIdx]); iStrlens = strlen(strTmp); sprintf(chPostBuf,"POST /perl/fts.cgi HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: %d\r\n\r\n%s",iStrlens,strTmp); iBuflens = strlen(chPostBuf); write(iSock, chPostBuf, iBuflens); iSize = read(iSock, strTmp, sizeof(strTmp)); strTmp[iSize] = '\0'; close(iSock); vmShowMutex.Lock(); strncpy(strShowInfo,strTmp,iSize); strShowInfo[iSize]='\0'; vmShowMutex.Release();} return 0;}int CvtFTC::Download( ){ int iFln, iLoop,iSize,iDlSizes; //char strDlFilePath[4096]; ofstream ofDlFile; iFln = vastrFileList.size(); for (iLoop = 0; iLoop < iFln; iLoop++) { puchBuf = (guchar *)(psHostent->h_addr); sprintf(strHostAdd,"%u.%u.%u.%u",*puchBuf,*(puchBuf+1),*(puchBuf+2),*(puchBuf+3)); strcpy(strPort,"80"); iSock = socket(AF_INET, SOCK_STREAM, 0); sSoin.sin_family = AF_INET; sSoin.sin_addr.s_addr = inet_addr(strHostAdd); sSoin.sin_port = htons(atoi(strPort)); iError = connect(iSock, (struct sockaddr *)&sSoin, sizeof(sSoin)); iPackAttrib = 100; sprintf(strTmp,"%8d%s:%s",iPackAttrib,"get",(char*)vastrFileList[iLoop]); iStrlens = strlen(strTmp); sprintf(chPostBuf,"POST /perl/fts.cgi HTTP/1.1\r\nHost: 127.0.0.1\r\nContent-Length: %d\r\n\r\n%s",iStrlens,strTmp); iBuflens = strlen(chPostBuf); write(iSock, chPostBuf, iBuflens); ifstream ifsock(iSock); iDlSizes = 0; sprintf(strTmp,"%s/%s",strLocalPath,(char*)vastrFileList[iLoop]); ofDlFile.open(strTmp,ios::out|ios::binary|ios::trunc); while (1) { ifsock.read(strTmp,1024); iSize = ifsock.gcount(); ofDlFile.write(strTmp, iSize); iDlSizes = iDlSizes + iSize; sprintf(strTmp,"DownLoad: %s %d Byte",(char*)vastrFileList[iLoop],iDlSizes); vmShowMutex.Lock(); strcpy(strShowInfo,strTmp); vmShowMutex.Release(); if (ifsock.good() == 0) break; } sleep(1); ifsock.close(); ofDlFile.close(); close(iSock); } sleep(5); vmShowMutex.Lock(); sprintf(strShowInfo,"DownLoad END."); vmShowMutex.Release(); return 0;}void CvtFTC::Execute ( ){ if(strcmp(strCmd,"upload") == 0) UploadSetup(); if(strcmp(strCmd,"download") == 0) DownloadSetup(); if(strcmp(strCmd,"upload") == 0) Upload(); if(strcmp(strCmd,"download") == 0) Download();}// do not remove this mark: #!#// end of file:vtft.cc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -