2011-02-17 102 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緩存。