2012-03-09 92 views
0

所以我试图找到一个答案,但一定不能正确搜索,或者我想要做的是错误的方式去解决它。通过网络共享的Python

所以我有一个简单的python脚本,可以在命令行环境中创建一个棋盘和棋子。你可以放置命令来移动棋子。所以我的一位同事认为在网络上玩对方会很酷。我同意并尝试创建一个文本文件来读取和写入网络共享。然后,我们将运行读取该文件的脚本。我遇到的问题是,我几乎遭到DOS攻击该文件共享,因为它一直试图检查网络共享上的文件以进行更新。

我对Python仍然很陌生,并且从来没有写过可以上网的代码,我们甚至是简单的本地网络。所以我的问题是,我应该如何正确地让两个人同时访问这些数据,而不是窃取所有的网络资源?

哦也即时通讯使用2.6版本,因为多数民众赞成其他人使用,他们拒绝改变,以新的语法

+0

try time.sleep() – monkut 2012-03-09 04:51:50

回答

0

首先,不知道你有多少次检查与移动FLE,很难知道为什么文件共享得到了DoS-ed。现在大多数网络和网络共享都可以处理这种流量 - 它们都是千兆以太网,所以除非您每次都传输大量数据,否则您应该没问题。如果你每次都传输整个文件,那么我建议你考虑优化它。

这就是说,关于如何在网络级别处理这个问题,谈到你的第二个问题,说实话,你已经在以某种方式做 - 你正在访问网络共享上的文件并修改它。唯一需要优化的是能够有效地完成它。即使在并发世界中的网络操作也是如此。在这种情况下,它将使用快速内存​​数据库存储各种更改/使用高规模RDBMS /在快速服务的Web服务器更好的异步I/O的情况下。

在目前的情况下,由于有两个用户在玩这个游戏,所以我建议你在每次通过网络时只传输差异。因此,不要通过网络共享修改文件,而是将这些移动发送到服务器组件,并将更改本地同步到文件。当然,这意味着你将需要创建一个服务器组件,它可以做类似这样的事情

user1的移动<→服务器<→user2的移动。服务器将修改移动文件。

一旦你开始这样做,你将进入服务器编程/防止竞争条件等领域。这将是一个很好的学习经验。