首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的Peer 2 Peer连接

Java中的Peer 2 Peer连接
EN

Stack Overflow用户
提问于 2012-10-01 06:42:43
回答 3查看 1K关注 0票数 1

我得到了一个项目,在这个项目中,我必须在没有任何中间服务器的情况下与同行共享文件。我想知道如何知道网络上有多少主机在线,以及如何连接到它们。我必须通过Java为我计算机中的主机粗略地制作路由表。

EN

回答 3

Stack Overflow用户

发布于 2012-10-01 06:48:54

您不需要对路由进行任何跟踪。您所需要做的就是知道端点地址。

您可以通过与主机建立连接来确定该主机是否已连接到网络。

您提到不会有中间服务器,因此NAT打洞不在您的问题范围之内。

作为起点,请查看java.net.Socket类文档。

票数 1
EN

Stack Overflow用户

发布于 2012-10-01 07:04:16

我将假设这是在私有网络上。一些相对被控制的东西。让他们在互联网上找到对方听起来就像是噩梦。

因此,考虑到这一点,您的对等点找到彼此的一种模型可能是选择标准化的端口序列和活动信号。然后,当一个对等点搜索其他节点时,它只会遍历网络上的所有IP,并在该端口号上发出请求。如果它得到一个有效的信号,它会将其添加到一个表中。发信号的计算机也必须记录下新来的人。

您必须选择端口序列,以便它们在网络上通常不会被使用。(相当大的)我说序列是为了在排序中有偏好,以加快搜索速度。

为了进一步加快搜索速度,当发送有效信号时,它还可以发送它的对等表和它检查的IP(以及它以相同方式接收的IP)。则新对等体将仅必须检查网络上的新IP,因为具有程序的新实例的旧IP将建立其自身。

希望这能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2018-03-16 02:51:22

我建议你不要使用mac地址,如果你把你的dhcp从你的路由器(如果你可以包括一个course........but,如果你只能包括一个集线器,你将被迫使用mac地址).and使用手动寻址你的ipv4地址,它会更好,你将能够很容易地连接到其他计算机。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12665773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档