簡體   English   中英

網絡共享中的Python

[英]Python over a network share

因此,我試圖找到答案,但一定不能正確搜索,否則我想做的是錯誤的解決方法。

因此,我有一個簡單的python腳本,可在命令行環境中創建棋盤和棋子。 您可以在放置命令中移動片段。 因此,我的一位同事認為在網絡上相互交流很酷。 我同意並嘗試通過創建一個文本文件在網絡共享上進行讀寫來進行嘗試。 然后,我們都將運行讀取該文件的腳本。 我遇到的問題是,我幾乎是DOS攻擊了該文件共享,因為它一直試圖檢查網絡共享上的文件是否有更新。

我還是python的新手,從來沒有寫過可以訪問Internet(甚至是簡單的本地網絡)的代碼。 所以我的問題是我應該如何正確地允許2個人同時訪問此數據而又不竊取所有網絡資源?

哦,我也使用2.6版,因為那是其他人所使用的,他們拒絕更改為新語法

您需要使用正確的聯網方式。 對於像您這樣的簡單網絡程序來說並不難。

使用Python的stdlib中的一個http://docs.python.org/library/socket.html (另請參閱頁面底部的示例)。

首先,在不知道要檢查移動次數的情況下,很難知道為什么文件共享受到DoS攻擊。 如今,大多數網絡和網絡共享都可以處理該級別的流量-它們都是千兆以太網,因此除非您每次都傳輸大量數據,否則您應該沒事。 如果您每次都傳輸整個文件,那么建議您考慮對其進行優化。

就是說,關於第二個問題是如何在網絡級別進行處理,說實話,您已經在以某種方式進行操作-您正在訪問網絡共享上的文件並對其進行修改。 唯一需要的優化是能夠有效地做到這一點。 即使在並發世界中通過網絡進行操作也是如此。 在那種情況下,它將使用快速的內存數據庫來存儲各種更改/使用大規模的RDBMS /在快速為Web服務器提供更好的異步I / O的情況下。

在當前情況下,由於有兩個用戶在玩游戲,因此我建議您采用一種僅通過網絡傳輸每次移動差異的方法。 因此,您無需將更改通過網絡共享進行修改,而是可以將移動內容發送到服務器組件,並將其本地更改同步到文件。 當然,這意味着您將需要創建一個服務器組件,該組件將執行以下操作

user1的動作<->服務器<-> user2的動作。 服務器將修改移動文件。

一旦開始執行此操作,您將進入服務器編程領域/防止出現競爭狀況等。這將是一個很好的學習經驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM