【发布时间】:2012-03-29 18:13:18
【问题描述】:
对于我的课程,我们必须用 Java 构建一个 bittorrent 客户端。我很难概念化如何处理连接。我将一步一步地指出困扰我的部分。如果我的陈述不正确,请纠正我,但在很大程度上我理解协议,更多的是来自传入对等方的连接以及处理端口和套接字的问题。
因此,当您与跟踪器连接时,您告诉它您将要监听的端口,以供希望与您连接的对等方使用。
您从跟踪器获得的对等字典包括他们正在侦听的所有对等端口。要与这些对等点连接,您只需在随机端口上创建一个套接字,然后传输握手。
现在我的问题是,如果你是另一边的同伴。也就是说,如果您正在侦听您为跟踪器提供的端口,并且对等方在该端口上向您发送握手,您如何与您希望它传输到不同端口的对等方进行通信。
我对端口和套接字感到非常困惑,试图弄清楚如何处理从多个对等点下载和上传,但这里有一些我做出的假设:
- 对于您连接的每个对等点,您都使用一个新的端口/套接字,您可以使用该新端口/套接字上传(如果它们是活动对等点)/下载。
- 提供给跟踪器的端口仅用于侦听传入的对等体。
我认为我对端口和套接字的理解可能存在缺陷,这使我无法理解问题。我希望我的措辞也正确。谢谢。
【问题讨论】:
标签: java sockets port bittorrent