我正在开发一个聊天应用程序(在 VB.Net 中)。这将是一个“安全”的聊天程序。所有流量都将被加密(我还需要找到最佳方法,但这不是现在的问题)。
目前该程序有效。我有一个服务器应用程序和一个客户端应用程序。不过,我想设置该应用程序,以便它不需要中央服务器即可工作。
我可以采取什么方法来分散网络?
我认为我需要以某种方式开发客户端,以便它们也充当服务器。
客户端如何知道它需要连接哪台服务器/如果服务器宕机会发生什么?如果没有中央服务器,客户端/服务器现在网络中还有哪些其他节点?
充其量我不希望客户端知道不同节点的 IP 地址是什么,但是我认为如果没有中央服务器,这是不可能的。
如前所述,该应用程序将用 VB.Net 编写,但我认为此时该语言并不重要。
只是想知道我可以遵循的不同方法。
例如,查看 Kademlia 协议的论文(您可以在此处找到它)。如果您只想快速了解,请查看 Wikipedia 页面http://en.wikipedia.org/wiki/Kademlia。Kademlia 协议定义了一种以分散方式在网络中查找节点的方式。它已经成功地应用在eMule软件中——因此经过测试它确实可以工作。
将其应用到您的聊天软件中应该不会造成严重问题。
| 归档时间: |
|
| 查看次数: |
9650 次 |
| 最近记录: |