没有中央服务器的聊天程序

Pee*_*Haa 4 security chat

我正在开发一个聊天应用程序(在 VB.Net 中)。这将是一个“安全”的聊天程序。所有流量都将被加密(我还需要找到最佳方法,但这不是现在的问题)。

目前该程序有效。我有一个服务器应用程序和一个客户端应用程序。不过,我想设置该应用程序,以便它不需要中央服务器即可工作。

我可以采取什么方法来分散网络?

我认为我需要以某种方式开发客户端,以便它们也充当服务器。

客户端如何知道它需要连接哪台服务器/如果服务器宕机会发生什么?如果没有中央服务器,客户端/服务器现在网络中还有哪些其他节点?

充其量我不希望客户端知道不同节点的 IP 地址是什么,但是我认为如果没有中央服务器,这是不可能的。

如前所述,该应用程序将用 VB.Net 编写,但我认为此时该语言并不重要。

只是想知道我可以遵循的不同方法。

Nub*_*bok 5

例如,查看 Kademlia 协议的论文(您可以在此处找到它)。如果您只想快速了解,请查看 Wikipedia 页面http://en.wikipedia.org/wiki/Kademlia。Kademlia 协议定义了一种以分散方式在网络中查找节点的方式。它已经成功地应用在eMule软件中——因此经过测试它确实可以工作。

将其应用到您的聊天软件中应该不会造成严重问题。