| ²é¿´: 188 | »Ø¸´: 1 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
zsgllyľ³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
ÈçºÎµã¶ÔµãʵÏÖ¶àÏ̶߳ϵãÐø´«
|
||
|
ÔÚÈç½ñµÄÍøÂçÓ¦ÓÃÖУ¬ÎļþµÄ´«ËÍÊÇÖØÒªµÄ¹¦ÄÜÖ®Ò»£¬Ò²Êǹ²ÏíµÄ»ù´¡¡£Ò»Ð©ÖØÒªµÄÐÒéÏñHTTP£¬FTPµÈ¶¼Ö§³ÖÎļþµÄ´«ËÍ¡£ÓÈÆäÊÇFTP£¬ËüµÄÈ«³Æ¾ÍÊÇ¡°Îļþ´«ËÍÐÒ顱£¬µ±³õµÄ¹¤³ÌʦÉè¼ÆÕâÒ»ÐÒé¾ÍÊÇΪÁ˽â¾öÍøÂç¼äµÄÎļþ´«ËÍÎÊÌ⣬¶øÇÒÒÔÆäÎȶ¨£¬¸ßËÙ£¬¼òµ¥¶øÒ»Ö±±£³ÖןܴóµÄÉúÃüÁ¦¡£×÷Ϊһ¸ö³ÌÐòÔ±£¬Ê¹ÓÃÕâЩÏÖÓеÄÐÒé´«ËÍÎļþÏ൱¼òµ¥£¬²»¹ý£¬ËüÃÇÖ»ÊÊÓÃÓÚ·þÎñÆ÷ģʽÖС£ÕâÑù£¬µ±ÎÒÃÇÏëÔÚµãÓëµãÖ®¼ä´«ËÍÎļþ¾Í²»ÊÊÓÃÁË»òÏ൱Âé·³£¬ÓÐÒ»ÖÖ´óµ¶Ð¡ÓõÄÒâζ¡£±ÊÕßÒ»Ö±ÏëѰÇóÒ»ÖÖ¼òµ¥ÓÐЧ£¬ÇҾ߱¸¶àÏ̶߳ϵãÐø´«µÄ·½·¨À´ÊµÏÖµãÓëµãÖ®¼äµÄÎļþ´«ËÍÎÊÌ⣬¾¹ý´óÁ¿µÄ·ÔÄ×ÊÁÏÓë²âÊÔ£¬ÖÕÓÚʵÏÖÁË£¬ÏÖ°ÑËü¹²Ïí³öÀ´£¬Óë´ó¼Ò·ÖÏí¡£ (ÎÒдÁËÒ»¸öÒÔ´ËΪ»ù´¡µÄʵÓóÌÐò£¨ÍøÂç´«Ê¥£¬°üº¬Ô´´úÂ룩£¬¿ÉÓÃÁË»ùÓÚIP/TCPµÄµçÄÔÉÏ£¬¹©´ó¼Òѧϰ¡£ÏÂÔØµØÖ·£º http://h2osky.126.com) ʵÏÖ·½·¨£¨VC£«£«£¬»ùÓÚTCP/IPÐÒ飩ÈçÏ£º ÈÔ?Ó÷þÎñÆ÷Óë¿Í»§Ä£Ê½£¬Ðè·Ö±ð¶ÔÆäÉè¼ÆÓë±à³Ì¡£ ·þÎñÆ÷¶Ë½Ï¼òµ¥£¬Ö÷Òª¾ÍÊǼÓÈëÊÌ´«Îļþ£¬¼àÌý¿Í»§£¬ºÍ´«ËÍÎļþ¡£¶øÄÇЩ¶ÏµãÐø´«µÄ¹¦ÄÜ£¬ÒÔ¼°ÎļþµÄ¹ÜÀí¶¼·ÅÔÚ¿Í»§¶ËÉÏ¡£ Ê×ÏȽéÂç·þÎñÆ÷¶Ë£º ×ʼÎÒÃÇÒª¶¨ÒåÒ»¸ö¼òµ¥µÄÐÒ飬Ҳ¾ÍÊǶ¨ÒåÒ»¸ö·þÎñÆ÷¶ËÓë¿Í»§¶ËÌýµÃ¶®µÄÓïÑÔ¡£¶øÎªÁ˰ÑÎÊÌâ¼ò»¯£¬ÎÒ¾ÍÈ÷þÎñÆ÷Ö»ÒªÌý¶®Á½¾ä»°£¬Ò»¾ÍÊǿͻ§Ëµ¡°ÎÒÒª¶ÁÎļþÐÅÏ¢¡±£¬¶þ¾ÍÊÇ¡°ÎÒ×¼±¸ºÃÁË£¬¿ÉÒÔ´«ÎļþÁË¡±¡£ ÓÉÓÚҪʵÏÖ¶àỊ̈߳¬±ØÐë°Ñ¹¦ÄܶÀÁ¢³öÀ´£¬ÇÒ°ü×°³ÉỊ̈߳¬Ê×ÏȽ¨Ò»¸ö¼àÌýỊ̈߳¬Ö÷Òª¸ºÔð½ÓÈë¿Í»§£¬²¢Æô¶¯ÁíÒ»¸ö¿Í»§Ï̡߳£ÎÒÓÃVC£«£«ÊµÏÖÈçÏ£º ¡¡ DWORD WINAPI listenthread(LPVOID lpparam) { file://ÓÉÖ÷º¯Êý´«À´µÄÌ×½Ó×Ö ¡¡¡¡¡¡¡¡SOCKET pthis=(SOCKET)lpparam; file://¿ªÊ¼¼àÌý int rc=listen(pthis,30); file://Èç¹û´í¾ÍÏÔʾÐÅÏ¢ if(rc<0){ CString aaa; aaa="listen´íÎó\n"; AfxGetMainWnd()->SendMessageToDescendants(WM_AGE1,(LPARAM)aaa.GetBuffer(0),1); aaa.ReleaseBuffer(); return 0; } file://½øÈëÑ»·£¬²¢½ÓÊÕµ½À´µÄÌ×½Ó×Ö while(1){ file://н¨Ò»¸öÌ×½Ó×Ö£¬ÓÃÓÚ¿Í»§¶Ëhttp://h2osky.126.com SOCKET s1; s1=accept(pthis,NULL,NULL); ¡¡file://¸øÖ÷º¯Êý·¢ÓÐÈËÁªÈëÏûÏ¢ CString aa; aa="Ò»ÈËÁªÈ룡\n"; AfxGetMainWnd()->SendMessageToDescendants(WM_AGE1,(LPARAM)aa.GetBuffer(0),1); aa.ReleaseBuffer(); DWORD dwthread; file://½¨Á¢Óû§Ïß³Ì ::CreateThread(NULL,0,clientthread,(LPVOID)s1,0,&dwthread); } return 0; } ½Ó×ÅÎÒÃÇÀ´¿´Óû§Ị̈߳º ÏÈ¿´ÎļþÏûÏ¢ÀඨÒ壺 struct fileinfo { int fileno;//ÎļþºÅ int type;//¿Í»§¶ËÏë˵ʲô£¨Ç°ÃæÄÇÁ½¾ä»°£¬ÓÃ1,2±íʾ£© long len;//Îļþ³¤¶È int seek;//Îļþ¿ªÊ¼Î»Öã¬ÓÃÓÚ¶àÏß³Ì char name[100];//ÎļþÃûhttp://h2osky.126.com }; file://Óû§Ï̺߳¯Êý£º DWORD WINAPI clientthread(LPVOID lpparam) { file://ÎļþÏûÏ¢ fileinfo* fiinfo; file://½ÓÊÕ»º´æ char* m_buf; m_buf=new char[100]; file://¼àÌýº¯Êý´«À´µÄÓû§Ì×½Ó×Ö SOCKET pthis=(SOCKET)lpparam; ¡¡file://¶Á´«À´µÄÐÅÏ¢ int aa=readn(pthis,m_buf,100); file://Èç¹ûÓдí¾Í·µ»Ø if(aa<0){ closesocket (pthis); return -1; } file://°Ñ´«À´µÄÐÅϢתΪ¶¨ÒåµÄÎļþÐÅÏ¢ fiinfo=(fileinfo*)m_buf; ¡¡ CString aaa; file://¼ìÑé¿Í»§Ïë˵ʲô switch(fiinfo->type) { file://ÎÒÒª¶ÁÎļþÐÅÏ¢ case 0: file://¶ÁÎļþ aa=sendn(pthis,(char*)zmfile,1080); file://Óдí if(aa<0){ closesocket (pthis); return -1; } file://·¢ÏûÏ¢¸øÖ÷º¯Êý aaa="ÊÕµ½LISTÃüÁî\n"; AfxGetMainWnd()->SendMessageToDescendants(WM_AGE1,(LPARAM)aaa.GetBuffer(0),1); break; file://ÎÒ×¼±¸ºÃÁË£¬¿ÉÒÔ´«ÎļþÁË case 2: file://·¢ÎļþÏûÏ¢¸øÖ÷º¯Êý aaa.Format("%s Îļþ±»ÇëÇó£¡%s\n",zmfile[fiinfo->fileno].name,nameph[fiinfo->fileno]); AfxGetMainWnd()->SendMessageToDescendants(WM_AGE1,(LPARAM)aaa.GetBuffer(0),1); file://¶ÁÎļþ£¬²¢´«ËÍ readfile(pthis,fiinfo->seek,fiinfo->len,fiinfo->fileno); file://Ìý²»¶®Äã˵ʲô default: aaa="½ÓÊÕÐÒé´íÎó£¡\n"; AfxGetMainWnd()->SendMessageToDescendants(WM_AGE1,(LPARAM)aaa.GetBuffer(0),1); break; } return 0; } /////////////http://h2osky.126.com file://¶ÁÎļþº¯Êý void readfile(SOCKET so,int seek,int len,int fino) ¡¡ { ¡¡ file://ÎļþÃû CString myname; ¡¡ myname.Format("%s",nameph[fino]); CFile myFile; ¡¡ file://´ò¿ªÎļþ myFile.Open(myname, CFile::modeRead | CFile::typeBinary|CFile::shareDenyNone); file://´«µ½Ö¸¶¨Î»Öá¡ myFile.Seek(seek,CFile::begin); char m_buf[SIZE]; int len2; int len1; len1=len; file://¿ªÊ¼½ÓÊÕ£¬Ö±µ½·¢ÍêÕû¸öÎļþ while(len1>0){ len2=len>SIZE?SIZE:len; myFile.Read(m_buf, len2); int aa=sendn(so,m_buf,len2); if(aa<0){ closesocket (so); break; } len1=len1-aa; len=len-aa; ¡¡ } myFile.Close(); } ·þÎñÆ÷¶Ë×îÒªµÄ¹¦Äܸ÷¼¼Êõ¾ÍÊÇÕâЩ£¬ÏÂÃæ½éÉܿͻ§¶Ë£º ¿Í»§¶Ë×îÖØÒª£¬Ò²×ÔÓ£¬Ëü¸ºÔðÏ̵߳ĹÜÀí£¬½ø¶ÈµÄ¼Ç¼µÈ¹¤×÷¡£ ´ó¸ÅÁ÷³ÌÈçÏ£º ÏÈÁ¬½Ó·þÎñÆ÷£¬½Ó×Å·¢ËÍÃüÁî1£¨¸øÎÒÎļþÐÅÏ¢£©£¬ÆäÖаüÀ¨Îļþ³¤¶È£¬Ãû×ֵȣ¬È»ºó¸ù¾Ý³¤¶È¾ö¶¨·Ö¼¸¸öÏß³ÌÏÂÔØ£¬²¢³õʹ»¯ÏÂÔØ½ø³Ì£¬½Ó×Å·¢ËÍÃüÁî2£¨¿ÉÒÔ¸øÎÒ´«ÎļþÁË£©£¬²¢¼Ç¼Îļþ½ø³Ì¡£×îºó£¬ÊÕβ¡£ ÕâÆäÖÐÓÐÒ»¸öÊ®·ÖÖØÒªµÄÀ࣬¾ÍÊÇcdownloadÀ࣬¶¨ÒåÈçÏ£º class cdownload { public: ¡¡ void createthread();//¿ªÏß³Ìhttp://h2osky.126.com DWORD finish1();//Íê³ÉÏß³Ì int sendlist();//·¢ÃüÁî1 downinfo doinfo;//ÎļþÐÅÏ¢£¨Óë·þÎñÆ÷¶¨ÒåÒ»Ñù£© int startask(int n);¿ªÊ¼´«Îļþn long m_index; BOOL good[BLACK]; int filerange[100]; CString fname; CString fnametwo; UINT threadfunc(long index);//ÏÂÔØ½ø³Ì int sendrequest(int n);//·¢ÎļþÐÅÏ¢ cdownload(int thno1); virtual ~cdownload(); }; [ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-27 at 10:23 ] |
» ²ÂÄãϲ»¶
340Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
²ÄÁÏר˶ÕÒµ÷¼Á
ÒѾÓÐ4È˻ظ´
0854µç×ÓÐÅÏ¢Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
0805 316Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
0854 ¿¼Ñе÷¼Á ÕÐÉúÁË£¡AI ·½Ïò
ÒѾÓÐ17È˻ظ´
¡¾¿¼Ñе÷¼Á¡¿»¯Ñ§×¨Òµ 281·Ö£¬Ò»Ö¾Ô¸ËÄ´¨´óѧ£¬³ÏÐÄÇóµ÷¼Á
ÒѾÓÐ15È˻ظ´
×ÊÔ´Óë»·¾³ µ÷¼ÁÉêÇë(333·Ö)
ÒѾÓÐ7È˻ظ´
306Çó0703µ÷¼ÁÒ»Ö¾Ô¸»ªÖÐʦ·¶
ÒѾÓÐ11È˻ظ´
0703»¯Ñ§µ÷¼Á£¬Çóµ¼Ê¦ÊÕ
ÒѾÓÐ6È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´

zsglly
ľ³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.15
- ½ð±Ò: 2268.7
- Ìû×Ó: 1035
- ÔÚÏß: 4.1Сʱ
- ³æºÅ: 83160
- ×¢²á: 2005-07-28
- ÐÔ±ð: GG
- רҵ: ´«ÈÈ´«ÖÊѧ
|
ÏÂÃæÏȽéÉÜsendrequest(int n)£¬ÔÚ¿ªÊ¼Ç°£¬ Ïò·þÎñÆ÷·¢»ñµÃÎļþÏûÏ¢ÃüÁÒÔ±ãÈÿͻ§¶ËÖªµÀÓÐÄÄЩÎļþ¿É´« int cdownload::sendrequest(int n) { file://½¨Ì×½Ó×Ö sockaddr_in local; SOCKET m_socket; int rc=0; file://³õʹ»¯·þÎñÆ÷µØÖ· local.sin_family=AF_INET; local.sin_port=htons(1028); local.sin_addr.S_un.S_addr=inet_addr(ip); m_socket=socket(AF_INET,SOCK_STREAM,0); int ret; file://Áª½Ó·þÎñÆ÷ ret=connect(m_socket,(LPSOCKADDR)&local,sizeof(local)); file://ÓдíµÄ»° if(ret<0){ AfxMessageBox("Áª½Ó´íÎó" ; closesocket(m_socket); return -1; } file://³õʹ»¯ÃüÁî fileinfo fileinfo1; fileinfo1.len=n; fileinfo1.seek=50; fileinfo1.type=1; file://·¢ËÍÃüÁî int aa=sendn(m_socket,(char*)&fileinfo1,100); if(aa<0){ closesocket(m_socket); return -1;} file://½ÓÊÕ·þÎñÆ÷´«À´µÄÐÅÏ¢ aa=readn(m_socket,(char*)&fileinfo1,100); if(aa<0) {closesocket(m_socket); return -1;} file://¹Ø±Õ shutdown(m_socket,2); closesocket(m_socket); return 1; } ÓÐÁËÎļþÏûÏ¢ºóÎÒÃǾͿÉÒÔÏÂÔØÎļþÁË ÔÚÖ÷º¯ÊýÖУ¬Ó÷¨ÈçÏ£º file://ÏÂÔØµÚclno¸öÎļþ£¬²¢ÎªËü½¨Ò»¸öÐÂcdownloadÀà down[clno]=new cdownload(clno); file://¿ªÊ¼ÏÂÔØ£¬²¢³õʹ»¯ type=down[clno]->startask(clno); file://½¨Á¢¸÷Ïß³Ì createthread(clno); ½éÉÜ¿ªÊ¼·½·¨ file://¿ªÊ¼·½·¨ int cdownload::startask(int n) { ¡¡file://¶ÁÈëÎļþ³¤¶È doinfo.filelen=zmfile[n].length; ¡¡ file://¶ÁÈëÃû×Ö fname=zmfile[n].name; CString tmep; file://³õʹ»¯ÎļþÃû tmep.Format("\\temp\\%s",fname); ¡¡ ¡¡file://¸øÖ÷º¯Êý·¢ÏûÏ¢ CString aaa; aaa="ÕýÔÚ¶ÁÈ¡ "+fname+" ÐÅÏ¢£¬ÂíÉÏ¿ªÊ¼ÏÂÔØ¡£¡£¡£\n"; AfxGetMainWnd()->SendMessageToDescendants(WM_AGE1,(LPARAM)aaa.GetBuffer(0),1); aaa.ReleaseBuffer(); ¡¡file://Èç¹ûÎļþ³¤¶ÈСÓÚ0¾Í·µ»Ø if(doinfo.filelen<=0)return -1; file://½¨Ò»¸öÒÔ.down½áβµÄÎļþ¼Ç¼ÎļþÐÅÏ¢ CString m_temp; m_temp=fname+".dwon"; doinfo.name=m_temp; FILE* fp=NULL; CFile myfile; file://Èç¹ûÊǵÚÒ»´ÎÏÂÔØÎļþ£¬³õʹ»¯¸÷¼Ç¼Îļþ if((fp=fopen(m_temp,"r" )==NULL){ ¡¡ filerange[0]=0; file://Îļþ·Ö¿é for(int i=0;i if(i>0) filerange[i*2]=i*(doinfo.filelen/BLACK+1); ¡¡ filerange[i*2+1]=doinfo.filelen/BLACK+1; ¡¡ } filerange[BLACK*2-1]=doinfo.filelen-filerange[BLACK*2-2]; myfile.Open(m_temp,CFile::modeCreate|CFile::modeWrite | CFile::typeBinary); ¡¡ ¡¡file://дÈëÎļþ³¤¶È myfile.Write(&doinfo.filelen,sizeof(int)); myfile.Close(); ¡¡ CString temp; for(int ii=0;ii temp.Format(".down%d",ii); m_temp=fname+temp; myfile.Open(m_temp,CFile::modeCreate|CFile::modeWrite | CFile::typeBinary); file://дÈë¸÷½ø³ÌÎļþÐÅÏ¢ myfile.Write(&filerange[ii*2],sizeof(int)); myfile.Write(&filerange[ii*2+1],sizeof(int)); myfile.Close(); ¡¡ } ((CMainFrame*)::AfxGetMainWnd())->m_work.m_ListCtrl->AddItemtwo(n,2,0,0,0,doinfo.threadno); } file://Èç¹ûÎļþÒÑ´æÔÚ£¬ËµÃ÷ÊÇÐø´«£¬¶ÁÉÏ´ÎÐÅÏ¢ else { ¡¡ file://´ò¿ªÎļþ fread(&doinfo.filelen,sizeof(int),1,fp); fclose(fp); CString temp; ¡¡ m_temp=fname+".down0"; if((fp=fopen(m_temp,"r" )==NULL) return 1; else fclose(fp); int bb; bb=0; file://¶Á¸÷½ø³Ì¼Ç¼µÄÐÅÏ¢ for(int ii=0;ii temp.Format(".down%d",ii); m_temp=fname+temp; ¡¡ myfile.Open(m_temp,CFile::modeRead | CFile::typeBinary); myfile.Read(&filerange[ii*2],sizeof(int)); myfile.Read(&filerange[ii*2+1],sizeof(int)); myfile.Close(); ¡¡ bb= bb+filerange[ii*2+1]; CString temp; ¡¡ } if(bb==0)return 1; doinfo.totle=doinfo.filelen-bb; ¡¡ ¡¡ ¡¡ ¡¡ ¡¡ ((CMainFrame*)::AfxGetMainWnd())->m_work.m_ListCtrl->AddItemtwo(n,2,doinfo.totle,1,0,doinfo.threadno); } ¡¡file://½¨Á¢ÏÂÔØ½áÊø½ø³Ìtimethread£¬ÒÔ¹ÜÏÖ¸÷½ø³Ì½áÊøÊ±¼ä¡£ DWORD dwthread; ::CreateThread(NULL,0,timethread,(LPVOID)this,0,&dwthread); return 0; } file://ÏÂÃæ½éÉܽ¨Á¢¸÷½ø³Ìº¯Êý£¬ºÜ¼òµ¥£ºhttp://h2osky.126.com void CMainFrame::createthread(int threadno) { DWORD dwthread; file://½¨Á¢BLACK¸ö½ø³Ì for(int i=0;i m_thread[threadno]= ::CreateThread(NULL,0,downthread,(LPVOID)down[threadno],0,&dwthread); ¡¡ ¡¡ ¡¡ } } file://downthread½ø³Ìº¯Êý DWORD WINAPI downthread(LPVOID lpparam) { cdownload* pthis=(cdownload*)lpparam; file://½ø³ÌÒýË÷£«1 InterlockedIncrement(&pthis->m_index); file://Ö´ÐÐÏÂÔØ½ø³Ì pthis->threadfunc(pthis->m_index-1); return 1; £ý ÏÂÃæ½éÉÜÏÂÔØ½ø³Ìº¯Êý,×î×îºËÐĵĶ«Î÷ÁË UINT cdownload::threadfunc(long index) { file://³õʹ»¯Áª½Ó sockaddr_in local; SOCKET m_socket; int rc=0; ¡¡ local.sin_family=AF_INET; local.sin_port=htons(1028); local.sin_addr.S_un.S_addr=inet_addr(ip); m_socket=socket(AF_INET,SOCK_STREAM,0); ¡¡ int ret; file://¶ÁÈ뻺´æ char* m_buf=new char[SIZE]; int re,len2; fileinfo fileinfo1; file://Áª½Ó ret=connect(m_socket,(LPSOCKADDR)&local,sizeof(local)); file://¶ÁÈë¸÷½ø³ÌµÄÏÂÔØÐÅÏ¢ fileinfo1.len=filerange[index*2+1]; fileinfo1.seek=filerange[index*2]; fileinfo1.type=2; fileinfo1.fileno=doinfo.threadno; ¡¡ re=fileinfo1.len; ¡¡ ¡¡file://´ò¿ªÎļþ¡¡ CFile destFile; FILE* fp=NULL; file://ÊǵÚÒ»´Î´«µÄ»° if((fp=fopen(fname,"r" )==NULL) destFile.Open(fname, CFile::modeCreate|CFile::modeWrite | CFile::typeBinary|CFile::shareDenyNone); else file://Èç¹ûÎļþ´æÔÚ£¬ÊÇÐø´« destFile.Open(fname,CFile::modeWrite | CFile::typeBinary|CFile::shareDenyNone); file://ÎļþÖ¸ÕëÒÆµ½Ö¸¶¨Î»Öà destFile.Seek(filerange[index*2],CFile::begin); file://·¢ÏûÏ¢¸ø·þÎñÆ÷£¬¿ÉÒÔ´«ÎļþÁË sendn(m_socket,(char*)&fileinfo1,100); CFile myfile; ¡¡file://³õʹ»¯¸÷½ø³Ì½ø¶ÈÐÅÏ¢http://h2osky.126.com CString temp; temp.Format(".down%d",index); m_temp=fname+temp; ¡¡file://µ±¸÷¶Î³¤¶È»¹²»Îª0ʱ while(re>0){ ¡¡ ¡¡ len2=re>SIZE?SIZE:re; ¡¡ file://¶Á¸÷¶ÎÄÚÈÝ int len1=readn(m_socket,m_buf,len2); file://ÓдíµÄ»° if(len1<0){ closesocket(m_socket); break; } ¡¡ file://дÈëÎļþ destFile.Write(m_buf, len1); file://¸ü¸Ä¼Ç¼½ø¶ÈÐÅÏ¢ filerange[index*2+1]-=len1; filerange[index*2]+=len1; file://ÒÆ¶¯¼Ç¼ÎļþÖ¸Õ뵽ͷ myfile.Seek(0,CFile::begin); file://дÈë¼Ç¼½ø¶È myfile.Write(&filerange[index*2],sizeof(int)); myfile.Write(&filerange[index*2+1],sizeof(int)); ¡¡file://¼õÈ¥Õâ´Î¶ÁµÄ³¤¶È re=re-len1; ¡¡file://¼ÓÎļþ³¤¶È doinfo.totle=doinfo.totle+len1; ¡¡ ¡¡ ¡¡ }; file://Õâ¿éÏÂÔØÍê³É£¬ÊÕβ ¡¡ myfile.Close(); destFile.Close(); delete [] m_buf; shutdown(m_socket,2); ¡¡ ¡¡ if(re<=0)good[index]=TRUE; return 1; } µ½Õâ¿Í»§¶ËµÄÖ÷Ҫģ¿éºÍ»úÖÆÒÑ»ù±¾½éÉÜÍꡣϣÍûºÃºÃÌå»áÒ»ÏÂÕâÖÖ¶àÏ̶߳ϵãÐø´«µÄ·½·¨¡£ ÎÒдÁËÒ»¸öÒÔ´ËΪ»ù´¡µÄʵÓóÌÐò£¨ÍøÂç´«Ê¥£¬°üº¬Ô´´úÂ룩£¬¿ÉÓÃÁË»ùÓÚIP/TCPµÄµçÄÔÉÏ£¬¹©´ó¼Òѧϰ¡£ |

2Â¥2005-12-29 19:23:55













»Ø¸´´ËÂ¥
;
6