BitTorrent协议Java项目 - 传入连接

时间:2012-03-29 18:13:19

标签: java sockets port bittorrent

对于我的课程,我们必须用Java构建一个bittorrent客户端。我很难概念化连接的处理方式。我将一步一步地指出困扰我的那部分。如果我做出了不正确的陈述,请纠正我,但在大多数情况下我理解协议,更多的是来自传入对等体的连接以及处理端口和套接字的问题。

因此,当您与智能设备连接时,您会告诉它您将要收听的端口,以及想要与您联系的同伴。

从跟踪器获取的对等词典包括他们正在侦听的所有对等端口。要与这些对等体连接,只需在随机端口上创建一个套接字,然后发送握手。

现在我的问题是,如果你是另一方的同伴。也就是说,如果您正在侦听端口,那么您会给跟踪器,并且对等方会在该端口上向您发送握手,您如何与要将其传输到其他端口的对等方进行通信。

我对端口和套接字感到非常困惑,试图弄清楚如何处理从多个对等端下载并上传的内容,但这里有一些我做过的假设:

  1. 对于您与之连接的每个对等方,请使用您上传的新端口/套接字(如果它们是活动对等方)/下载。
  2. 提供给跟踪器的端口仅用于侦听传入的对等端。
  3. 我想也许我对端口和插座的理解可能存在缺陷,这使我无法理解这个问题。我希望我也能正确地说明这一点。感谢。

1 个答案:

答案 0 :(得分:1)

当您的服务器在特定端口上侦听传入连接时,底层协议将在握手过程中切换到新端口。您不必告诉对等端使用其他端口。