<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>局域網發布共享文件xml-rpc實現的文件共享

局域網發布共享文件xml-rpc實現的文件共享

2022-05-30 | zip | 0.01 MB | 次下載 | 免費

資料介紹

授權協議 GPL
開發語言 Python
操作系統 跨平臺
軟件類型 開源軟件
所屬分類 應用工具、 文件傳輸工具

軟件簡介

xml-rpc 實現的文件共享

這個項目取材與http://www.the5fire.com/python-project8-xml-rpc.html 。是python基礎教程中的十個例子中的第八個。主要的實現原理如下:

每一個客戶端都是一個節點。每一個節點,都啟動一個 xml-rpc服務器。在 xml-rpc服務器中,維護著一個所有節點的集合。原文的例子,功能太少,只能下載。后來我加了一個ls 命令,可以查看包括自己的和所有節點的文件。原項目中的節點列表,必須是手動給出的,相當麻煩,是通過一個叫urlfile的文件來維護的。在我的這個項 目中,維護 節點的信息是通過程序自己學習到的。每當一個節點啟動的時候,該節點就會把自己的xml-rpc服務器的訪問url,通過udp廣播的方式,廣播給某一個 端口。同時每一個節點,只要它啟動后,會監聽某一個端口上的,有關xml-rpc服務器的訪問url的監聽。只要收到信息,就把它寫入到節點列表中。通過 fetch下載文件時,如果發現了異常,則從節點列表中刪除它。

現在假如有兩個節點(啟動了client.py文件的機器) a和b,a中的節點列表中有b,同樣b中也有,當a嘗試著fetch 一個文件時,如果沒有在a中查找到的話,則會去找b,但是b中的節點列表是a,b會去找a。。。。。這樣就形成了阻塞。原項目中,是通過一個url列表來 維護的。但是這個項目中,a機器對于自己的url是localhost,b也是localhost,但是對于a來講b就不是localhost。所以我的 項目中,是通過維護一個secret列表來判斷,下一個要查找的節點是不是已經被查過了。但是同時得先知道下一個節點的secret值,但是如果下一節點 就是上一個節點的話,還是會有阻塞,所以把xml-rpc做成多線程就很必要了。新構建一個類class ThreadRPC(ThreadingMixIn, SimpleXMLRPCServer) 。這樣ThreadRPC就變成了多線程的SimpleXMLRPCServer。

本來文件的傳輸是使用了xml-rpc。后來我把它獨立出來了。單獨作為一個文件傳輸服務,TranServer。這個文件傳輸,不使用xml- rpc,而是直接用socket。用了SocketServer框架。本來是想用asynchat的。但是后來發現,這個異步框架,有點蛋疼。比如說它的 push方法。是會把數據放到叫producer_fifo的fifo數據結構中。這個做會出現一個大問題。我讀本地的文件速度遠遠快于發送的數度,當體 積大的時候,更是如此。所以使用push傳輸,會發現內存占用越來越大,越來越大。。。如果不使用push,而是使用send,會發現數據不同步.鑒于這 些問題,所以我沒有采用異步,而是使用了多線程的SocketServer, ThreadingMixIn

配置文件

[global]

# 監聽節點的端口

listen_port = 1111

# 數據傳送的端口

data_port = 1234

# 要共享的目錄

share_dir = /tmp/a

使用方法

啟動節點 : python client.py

獲取文件列表: ls

下載文件: fetch xxx

查看文件內容: cat xxx [要查看的前n位]

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>