一定要開發出一個檔案分享權限設定軟體,發帖為證
主要功能:
支援檔案的分享與下載
細節:
1,檔案/目錄共用
2,私密通道傳輸
3,好友加速通道傳輸
4,對話/群聊
5,支援bt協議
效能要求:
1,頻寬切換
2,資源戰勝低
3,聊天支援貼圖,放音樂
4.高度安全,加密傳輸
5,高效能
優先開發檔案分享權限設定與傳輸,其次介面,其次聊天。
開發時間長度:半年
開發人數1--3人
技術選擇:
1,程式設計語言c++/boost
2,介面,nodejs + xml + opengles
3,資料庫:伺服器選用mysql,本地選擇sqlite
4,網路程式庫asio/libevent待定
5.伺服器管理工具,C#開發
6,編譯與打包指令碼nsis/python
7,開發工具, linux vim /sourceinsight windows/vs 08 or 12
8,支援平台,windows
9,介面開發工具,介面ide+notepad++
10,文檔:word, starUml
11, google code svn
12,測試環境,暫訂。
13,開發順序:由內到外,由主到次
14,層次要分明,以利於跨平台,或替換
15.日誌.log4cplus
架構:
伺服器端:
1,資源表:
包括檔案的id, 檔案標識,檔案的名稱,檔案大小,檔案類型等,檔案的片標識id,分區大小
2,資源使用者表:
資源作為key, 資源的使用者列表,(資源可包括檔案標識和檔案片標識)
3,線上使用者列表
使用者的串連數,使用者是否超級種子,使用者的檔案,使用者的網速,使用者的頻寬,使用者的模式(全速或上網等模式)
4,使用者資源表:
表2的反序,以使用者作為key,資源清單。
5使用者表:
使用者的令牌,使用者的唯一標識/臨時標識。使用者的註冊資訊。層級等(與聊天整合,包括好友/群等)
使用者需要定時上報狀態,以便伺服器作調度,及其它使用者作下載源選擇,伺服器並以此作使用者線上狀態判定。上報的內容放在線上使用者列表中。
用戶端:
1,介面類似於網路螞蟻或迅雷。
2,使用者為對方建立專用通道(Express Connect),優先對此客方傳輸。
3,反吸血
4,使用者之間傳輸的檔案可以是伺服器不知道的
5,使用者可以在既有協議上走自己定義的協議,伺服器退化成一個代理或打洞的,這樣可以方便擴充出聊天功能,及反封殺。
6,伺服器只定義基本的協議,其它的以外掛程式的方式提供(參見上一條款)
7,協議優先順序,p2s > p2p
8,用戶端的介面問題:先實現準系統,以後再迭代或重構
協議:
1上報:
隱含登記。 上報網路狀態及資源
先上報資源id,伺服器發現沒有則上傳資源內容《支援單個和多個》。第一遍無條件上報內容,以後用簡單資源上報協議
請求分配peer協議:帶有檔案或檔案片的唯一標識
資源查詢
伺服器返回peer協議, 伺服器選擇peer的策略
伺服器拒絕協議
打洞的協議
自訂協議
檔案傳輸,請求塊。
以上的協議包括p2s和p2p
實現:
1,模組
包括:打洞層 檔案傳輸層, p2p互動層, 檔案本地處理層。 協議層,管理調度層
ui層,資料庫操作層,狀態統計上報。調試展示介面層。