資料介紹
軟件簡介
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次下載
- FeiQ局域網文件傳輸軟件應用程序免費下載 9次下載
- 查局域網共享電腦的軟件應用程序免費下載 3次下載
- 局域網共享一鍵修復 2次下載
- 局域網互訪共享經典問題 81次下載
- XML-RPC技術的多系統松耦合平臺中的設計和應用 25次下載
- 信道訪問與局域網
- 局域網經典故障解決方法
- 10日完全精通局域網
- 基于局域網的網格實現
- 局域網基于SMB 協議的共享文件和打印信息獲取
- 局域網與城域網 0次下載
- 局域網組建與維護課件 0次下載
- 局域網組建與維護教程 0次下載
- 局域網防攻擊軟件下載
- Linux系統共享文件缺失的解決策略 1000次閱讀
- Linux配置NFS文件共享詳解 2620次閱讀
- 解答無線局域網該如何設置 3800次閱讀
- 一文了解無線局域網是什么意思 3.9w次閱讀
- 淺談無線局域網的優點 3118次閱讀
- 廣域網和局域網的區別是什么_如何區分這兩種網絡 9.4w次閱讀
- 虛擬局域網vlan的好處及優點分析 3.2w次閱讀
- 如何設置虛擬局域網_虛擬局域網的劃分方式 1.4w次閱讀
- 虛擬局域網的實現方法 1.1w次閱讀
- 虛擬局域網有哪幾種實現技術 1.1w次閱讀
- 虛擬局域網配置實例詳解 8730次閱讀
- 虛擬局域網什么意思_虛擬局域網有什么特點_如何組建虛擬局域網 2.5w次閱讀
- 局域網怎么設置共享 1.1w次閱讀
- 局域網和外網有什么區別 2.1w次閱讀
- 局域網打印機連接設置方法 局域網打印機怎么設置 2.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論