乙個基於socket的資源共享平台的實現(三)

2021-08-30 20:27:51 字數 1244 閱讀 4917

需要共享資源,則需要探測本地資源分布情況。

此處我們用的演算法比較2……不過還是說說吧。

下面使用mfc的cfilefind實現乙個本地檔案遞迴收集器,以jason格式儲存檔案路徑和檔案大小:

#ifndef collecter_h_

#define collecter_h_

#include#include#include "stdiofileex/stdiofileex.h"

#define targetfile "result.txt"

#define cfgfilename "path.txt"

using namespace std;

struct filestruct

;vectorfiles;

void findfile(cstring dir)

//遞迴訪問子目錄

if( finder.isdirectory() &&

finder.isdots() == false )

findfile( dir + _t("\\") + cstring( finder.getfilename() ) ); }}

/*[,{}...{}]

*/void writeresult()

"));

iter->size );

} fp.writestring( _t("]"));

fp.close();

}void readcfg(cstring& path)

void startcollect()

~ns_log()

void write( string dat )

is_busy = true;

string now_time = getnowtime();

logfile<<"【"mon = m_tm->tm_mon+1;

day = m_tm->tm_mday;

hour = m_tm->tm_hour;

min = m_tm->tm_min;

sec = m_tm->tm_sec;

sprintf(ptime, "%04d-%02d-%02d %d:%d:%d", year, mon, day, hour, min, sec);

return string( ptime );

} fstream logfile;

bool is_busy;

};#endif

未完待續……

乙個基於socket的資源共享平台的實現(三)

需要共享資源,則需要探測本地資源分布情況。此處我們用的演算法比較2 不過還是說說吧。下面使用mfc的cfilefind實現乙個本地檔案遞迴收集器,以jason格式儲存檔案路徑和檔案大小 然後定期收集,對收集結果md5,若發生變化,則上傳伺服器。伺服器端使用乙個資料結構維護所有資源站資源,對於使用者的...

乙個基於socket的資源共享平台的實現(一)

前段時間和朋友一起做了乙個類似於電驢 迅雷 msn工具的毛坯模型,基本上所有功能都是從socket通訊級別向上實現。整體架構為c s架構,使用mfc實現。技術上都是很老的東西,此文主要介紹類似於 電驢 的這樣乙個軟體的設計思路和部分 框架。我們實現的 不是很優化,僅為設計思路的佐證。我最初做這個小軟...

乙個基於socket的資源共享平台的實現(二)

我們用乙個ns download pool類來封裝對其的管理。接下來我們針對資源傳送過程中限速進行分析和實現。如果需要將傳送速度限制在乙個值,我們可以這麼理解,單位時間內最多允許傳送資料為n,若超過之,就需要降低速度,若不足,則需要提高速度。如何控制速度?這裡我們採用最樸素的方法,sleep,只要將...