2011-02-17 101 views
4

有没有人知道无服务器聊天客户端的逻辑后,将能够互连局域网范围内的互联网范围内?它不需要能够检测全世界的其他用户,它只需要获得某种可以连接到用户的唯一标识,如IP或某种唯一的ID。无服务器全网聊天客户端?

+0

您是否在寻找已经使用的客户端,或只是想知道如何实施? – 2011-02-17 03:47:29

+0

我想知道如何实施。 – 2011-02-17 06:52:13

回答

2

首先,你需要一些来自某个地方的信息。你不能只打开它并开始聊天,而不知道每个人都在哪里。您可能有一个始终处于联机状态的节点,并知道其他一些节点。其他节点会知道其他节点,那些节点会知道更多,等等。您是否会将该静态节点称为“服务器”是有争议的。它可能只是你的朋友的节点,或者是一个公开的IP。一旦你开始运行,你不会再需要启动节点了。

在这种类型的系统中,如果您想要除IP地址之外的某种标识,则需要查询您的邻居。 IP地址也有其自身的缺点,因为在家庭DSL连接中,您可能在路由器后面有两个人。唯一ID需要遍历整个网格的递归查询,以确定您的ID是否唯一。

在这种类型的系统中,您只需要知道有限的一部分人与任何人聊天,因为您可以查询周围的每个人(并且递归查询)该人的位置。存储在本地节点上的人数的人为限制可以用最近最少使用的算法实现,类似于CPU缓存。