0

嗨,我在学校有一个任务是写一个 p2p 程序,我正在努力理解它背后的想法。我们被告知要实现两个对象 FileManager 和 NameServer:

FileManager 维护一组文件。它允许其用户删除\重命名现有文件并从其他 FileManager 获取新文件。启动时,FileManager F 接收其文件列表和 NameServer 列表作为输入。然后,F 将其文件名和 NameServer 名称列表发送到其 NameServer 列表中的所有 NameServer

NameServer 维护有关哪些文件存储在每个已知 FileManager 中的信息。NameServer 还有助于在 FileManager 之间分发有关其他 NameServer 的信息。

所以我很难理解这两个对象之间的交互。他们都在同一台机器上运行吗?我的意思是,在 p2p 中,每台机器都充当服务器。如果问题有点不清楚,我很抱歉,因为整个作业对我来说仍然有点不清楚。任何人都可以尝试帮助我理解吗?

4

2 回答 2

1

据我在您的分配中可以看出,没有假设 FileManager 和 NameServer 实例将在哪里运行。但即便如此,这也不应该影响您的解决方案,因为您必须使用 IP 地址和套接字。如果您必须与同一台机器上的实例通信,只需使用 127.0.0.1 作为地址。

于 2011-04-19T20:27:26.277 回答
0

所以我很难理解这两个对象之间的交互。他们都在同一台机器上运行吗?我的意思是,在 p2p 中,每台机器都充当服务器。

从功能/逻辑上讲,这意味着您的 P2P 系统上有两种类型的节点。有些充当文件管理器,有些充当名称服务器。最终,一个真实的节点可能会实现这两组功能,并同时充当 FileManager 和 NameServer。

您可以将 FileManagers 和 NameServers 视为对等实例提供的服务。希望这可以帮助。

于 2011-04-20T10:12:54.453 回答