日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P2P共享下载器

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P2P共享下载器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • 1、引言
        • 2、項目簡介
        • 3、整體框架介紹
        • 4、客戶端設計
        • 5、服務端設計
        • 6、接口設計
        • 7、項目技術點即改進點
        • 8、源碼

1、引言

不知道大家在大學期間有沒有有沒有為各種各樣的作業所煩惱過(進行給學委,班長拷貝文件、互傳資料等工作)?并不是所做作業的時候(當然也有)而是在叫作業的時候,每門科目不同的作業交給不同的學習委員,發送到不同的郵箱這也是相當麻煩,到這里有沒有一種方法:各科都有一個專門地點,大家向同一個地方提交相同作業,然后由學委統一收取;這樣統一的操作是高效的而且是好管理;在了解到了網絡傳輸、HTTP協議、CPP-httplib,分塊傳輸等技術后,我嘗試開發一個這樣的項目,接下來分享一下這個項目。

2、項目簡介

  • 這個項目實現在一個局域網下進行附近文件共享下載功能的工具
  • [1]能夠進行搜索匹配局域網中運行該工具的主機;并且獲取到局域網在線主機列表
  • [2]能夠獲取指定主機所共享文件信息列表(指定的共享目錄下的文件信息)
  • [3]能夠對指定主機上的指定文件進行多線程分塊下載提高效率

3、整體框架介紹

項目主要分為兩大模塊:客戶端模塊/服務端模塊
客戶端模塊:

  • 查看局域網中有哪些共享主機 – 向網絡中廣播配對請求,得到響應
  • 獲取指定主機的共享文件信息列表 – 向指定主機發送獲取列表請求
  • 從指定主機上面下載文件 --想指定主機發送下載指定文件請求
  • 服務端模塊:

    • 針對客戶端所發起多種的請求,提供相應的服務

    框架圖:

    4、客戶端設計

    • 獲取網卡信息–獲取主機IP + MASK–局域網IP列表
    • 向所有IP發送配對請求 — 得到在線主機列表(將在線主機的IP打印到終端)
    • 選擇一個主機(IP)發送獲取該主機的文件列表請求–獲取到共享的文件列表(將文件列表打印到終端)
    • 從這個主機下載指定的共享文件(創建文件,打開文件,將響應數據寫入文件。關閉文件)

    5、服務端設計

    • 接收到主機請求配對,做出200響應

    • 接收到文件列表請求
      1.檢測獲取指定共享目錄下文件信息(文件名)
      2.將所有文件名組織成HTTP響應正文

    • 接受到指定文件下載請求
      1.通過文件名檢測文件是否存在
      2.檢測文件是否是一個普通文件
      3.打開文件,讀取文件數據作為HTTP響應正文響應發送

    6、接口設計

    客戶端:
    提供客戶端主機配對功能

    void HostPair(const uint32_t ip);//直接向主機發送請求,判斷是否在線---這是一個線程入口函數 bool GetOnlineHost(){1.獲取網卡信息--獲取主機IP,2.創建線程,傳入HostPair,判斷是否在線}

    提供獲取指定主機共享文件列表功能

    bool GetShareList(const uint32_t ip);//獲取指定主機的共享文件列表,打印在終端

    提供下載指定主機上共享文件的文件功能

    bool DownLoadFile(const uint32_t ip,const std::string &filename);

    服務端:
    提供響應主機配對請求功能

    void HostPair();//針對客戶端主機配對請求做出響應

    提供響應獲取共享文件列表功能

    void ShareList();//針對客戶端共享文件列表做出響應---(獲取目錄下文件信息)

    提供響應下載請求功能

    v**加粗樣式**oid DownLoad();//針對客戶端下載請求做出響應---(打開文件讀數據響應給客戶端)

    其他接口:
    windows下獲取網卡信息功能

    static bool GetAllAdapter(std::vector<Adapter> *list)

    cpp-httplib搭建http服務器

    httplib::Client cli(buf, P2P_PORT); //實例化httplib客戶端對象 httplib::Server _srv;//實例化httplib服務端

    7、項目技術點即改進點

    技術點: 使用cpp-httplib搭建http服務器、boost庫對文件的操作、多線程、分塊傳輸等;
    改進點:
    斷點續傳: 針對下載過程中異常大致下載終止,下次繼續是從上次斷開處開始下載,而不是從心開始
    網絡穿透: 實現在不同局域網中,兩臺主機之間進行文件共享下載

    8、源碼

    Github:https://github.com/IronChang/P2P-Shared-download

    總結

    以上是生活随笔為你收集整理的P2P共享下载器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 青草视频在线播放 | 国产精品黑人一区二区三区 | 中文字幕在线1 | 人妻精品久久久久中文字幕 | 在线小视频 | 中文字幕日韩三级片 | 中文有码视频 | 国内毛片毛片毛片毛片 | 在线视频 一区二区 | 亚洲女成人图区 | 精品亚洲aⅴ无码一区二区三区 | 91caob| 深夜久久久| 噜噜噜视频 | 91一二区 | 一区二区高清在线观看 | 女人脱下裤子让男人桶 | 国产精品免费精品一区 | 黄色片网站免费看 | 噜噜色网| 欧美色哟哟 | 一二三区在线观看 | 日韩v欧美| 亚洲m码 欧洲s码sss222 | 无码人妻aⅴ一区二区三区有奶水 | 欧美成人国产精品高潮 | 亚洲精品视频免费在线观看 | 亚洲精品一区中文字幕乱码 | 日韩视频网址 | 中文字幕久久av | 麻豆黄色一级片 | 久久av在线播放 | 精品午夜福利在线观看 | 在线观看免费毛片 | 久久精品人妻av一区二区三区 | 日韩午夜视频在线观看 | 外国黄色录像 | 99re6在线精品视频免费播放 | www精品| jizz日韩 | 欧美性猛交乱大交 | 美女露出让男生揉的视频 | 自拍偷拍福利 | 69日本xxxxxxxxx30| 亚洲成人 av | 欧美一级特黄aa大片 | 国产精品永久免费 | 国产免费一区 | 日本特级黄色大片 | av中文字幕网 | 国产一区二区在线不卡 | av五十路 | 亚洲吧| 一本一道无码中文字幕精品热 | 中文字幕不卡在线播放 | 老司机精品福利视频 | 成人av中文解说水果派 | 91精品一区二区三区在线观看 | 亚洲私拍 | 男女无遮挡网站 | 毛片视频在线免费观看 | 色婷婷a | 国产免费无遮挡 | 91宅男| wwwxxxx在线观看 | 天天操天天射天天爱 | av中文字幕一区二区三区 | 少妇精品一区二区三区 | 中国女人裸体乱淫 | 色撸撸在线观看 | 亚洲美女综合 | 色福利在线 | 亚洲免费高清视频 | www五月天com| 日韩短视频| 一级片特黄 | 中文字幕电影一区 | 97色在线视频 | 国产精品麻豆一区二区 | 男女日皮视频 | av免费观看网 | 亚洲精品久久久狠狠狠爱 | 欧美裸体精品 | 波多野结衣一区二区三区在线 | 肉番在线观看 | av综合一区 | av免费视屏 | 国产日韩欧美高清 | 久久久久久久久久久久久av | 久久久久久香蕉 | 亚州黄色网址 | 精品日韩欧美 | 国产九九九九九 | 激情小说在线 | 欧美日韩精品在线观看 | 亚洲精品aaaa | 日本不卡一区在线观看 | 伊人天天 | 国产精品中文久久久久久 |