資料介紹
軟件簡介
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位]
- 如何使用Python實現分布式文件共享系統 12次下載
- 查局域網共享電腦的軟件應用程序免費下載 3次下載
- 局域網共享一鍵修復 2次下載
- 局域網互訪共享經典問題 81次下載
- XML-RPC技術的多系統松耦合平臺中的設計和應用 25次下載
- 信道訪問與局域網
- 局域網經典故障解決方法
- 10日完全精通局域網
- 基于局域網的網格實現
- 局域網基于SMB 協議的共享文件和打印信息獲取
- 局域網與城域網 0次下載
- 多USB 接口的局域網接入技術的實現
- 局域網組建與維護課件 0次下載
- 局域網組建與維護教程 0次下載
- 局域網防攻擊軟件下載
- Linux系統共享文件缺失的解決策略 2.1k次閱讀
- Linux配置NFS文件共享詳解 3.3k次閱讀
- 解答無線局域網該如何設置 4.2k次閱讀
- 一文了解無線局域網是什么意思 4w次閱讀
- 淺談無線局域網的優點 3.5k次閱讀
- 廣域網和局域網的區別是什么_如何區分這兩種網絡 9.6w次閱讀
- 虛擬局域網vlan的好處及優點分析 3.4w次閱讀
- 如何設置虛擬局域網_虛擬局域網的劃分方式 1.6w次閱讀
- 虛擬局域網的實現方法 1.2w次閱讀
- 虛擬局域網有哪幾種實現技術 1.2w次閱讀
- 虛擬局域網配置實例詳解 9.2k次閱讀
- 虛擬局域網什么意思_虛擬局域網有什么特點_如何組建虛擬局域網 2.6w次閱讀
- 局域網怎么設置共享 1.2w次閱讀
- 局域網和外網有什么區別 2.2w次閱讀
- 局域網打印機連接設置方法 局域網打印機怎么設置 2.3w次閱讀
下載排行
本周
- 1EMC PCB設計總結
- 0.33 MB | 6次下載 | 免費
- 2LLC變換器的原理特點與應用領域
- 1.54 MB | 1次下載 | 1 積分
- 3索尼14n 20n系列維修手冊
- 3.68 MB | 次下載 | 1 積分
- 4晶益微 JY6166 音頻codec驅動資料分享
- 0.73 MB | 次下載 | 免費
- 5晶益微 JY6311 音頻codec驅動資料分享
- 0.77 MB | 次下載 | 免費
- 6英集芯 IP5518V 集成MCU 的TWS耳機充電倉管理SoC數據手冊
- 8.35 MB | 次下載 | 免費
- 7英集芯 IP5518 集成MCU的TWS耳機充電倉管理SoC數據手冊
- 7.53 MB | 次下載 | 免費
- 8英集芯 IP5518H 集成MCU的30V高耐壓TWs耳機充電倉管理S0C數據手冊
- 8.33 MB | 次下載 | 免費
本月
- 1EMC PCB設計總結
- 0.33 MB | 6次下載 | 免費
- 2耗盡型MOS FET產品目錄選型表
- 0.14 MB | 4次下載 | 免費
- 3PD取電芯片 ECP5702規格書
- 0.88 MB | 4次下載 | 免費
- 4氮化鎵GaN FET/GaN HEMT 功率驅動電路選型表
- 0.10 MB | 2次下載 | 免費
- 52EDL05x06xx系列 600V半橋門驅動器帶集成自舉二極管(BSD)手冊
- 0.69 MB | 1次下載 | 免費
- 6TI系列-米爾TI AM62L核心板開發板-高能效低功耗嵌入式平臺
- 1.51 MB | 1次下載 | 免費
- 7PD取電芯片,可取5/9/12/15/20V電壓ECP5702數據手冊
- 0.88 MB | 1次下載 | 免費
- 8飛騰FT2000-4 COM Express核心板技術手冊0603
- 1.22 MB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191457次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論