如何构建Python P2P应用?
我刚开始学习Python编程,对套接字(sockets)有一点了解。但是在网上找不到任何简单的实现例子。它的基本功能应该包括:
- 简单的聊天
- 文件共享
- 对等节点查找
我该如何开始呢?p2p(点对点)模型应该是什么样的?我不想使用像Twisted这样的库,因为它太复杂了。
2 个回答
0
为了查找对等节点,我会先从一个简单的中央服务器开始。至于简单的聊天和文件分享,我会使用一种改进版的HTTP协议。
1
如果你愿意直接使用套接字(socket),其实可以自己写这个库。每个节点可以有一个同伴列表,这个列表要定期更新,同时每个节点要向一个中央服务器报告自己的存在。你需要了解一些网络穿越算法、哈希表等等,但这些都是可以做到的。正如Xavier所说,先从简单的开始,快速让它工作起来,然后再添加更多功能。
为了简化,你可以先手动建立连接;先让文件共享和聊天功能正常工作,然后再添加连接和发现的功能。
这项工作量不小,但如果你自己写所有的东西,可能会更容易理解!不过,使用现成的库的好处是很多工作已经为你做好了。这是一个权衡 :)