资源描述:
《文件传输 3断点续传与多线程传输(3 file transfer http and multi-threaded transfer)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、文件传输3断点续传与多线程传输(3filetransferHTTPandmulti-threadedtransfer)FollowingtheDIYTrojanprogrammingontwo,nowwebegantodiscusstheimplementationoftheHTTPandmulti-threadedfiletransfer.Infact,thesetwofunctionsistodownloadthesoftwareEssentialfunction,nowweaddittoourownTrojanhorse
2、toexperiencethefeelings.Referringtomulti-threadeddownload,firstofalltothenetworkantsauthorThetributetoHongYirong'spredecessoristhatmultithreadeddownloadshavecaughttheattentionoftheInternetandbecomepopular.Inthisarticle,we'llsimplyimplementitSupportforHTTPandmulti-th
3、readedtransferprocedures.Inordertoexplainmoreclearly,wewillHTTPandmulti-threadedtransferrespectivelywithtwoprocedurestoachieveImplementationofmultithreadedtransmissionRealizationprincipleThesourcefileisdividedintoNblocksbylength,andthenNthreadsareopened,eachthreadtr
4、ansfersonepiece,andfinallyallthreadthreadsaremergedAfile500Mwecantransferby5threadsbylength.Thefirstthreadmergesthe5threadfilesfrom0-100M,secondthreadsfrom100M-200MImplementationprocessThe1.clientrequeststhefileinformation(name,length)totheserver2.clientwiththefilel
5、engthtoopenupNthreadstoconnecttheserver3.,theservertoopennewthreads,communicatewiththeclientandtransferfilesThe4.clientsaveseachthreadofdatatoafile5.mergeallthreadfilesCodeimplementationGenerallyspeaking,accordingtotheabovesteps,detailedimplementationandsomemainpoin
6、ts,wefollowtheaboveprocessincodingStructuredefinitionInthecommunicationprocess,weneedtotransferinformationincludingfilename,filelength,fileoffset,operationinstructionsandotherinformation.Inordertofacilitatetheoperation,wedefinethefollowingstructuretypedefstruct{Char
7、Name[100];//filenameIntFileLen;//filelengthIntCMD;//operationinstructionIntseek;//threadstartpositionSOCKETsockid;}FILEINFO;Copycode1.torequestfileinformationTheclientcodeisasfollows:FILEINFOfi;Memset((char*)&fi,0,sizeof(FI));Fi.CMD=1;//getfileinformationIf(send(cli
8、ent,(char*),&fi,sizeof(FI),0)==SOCKET_ERROR){Cout<<"SendGetFileInfoError"";}TheservercodeisasfollowsWhile(true){SOCKETclient;If(client=a