对于我的课程,我们必须用Java构建一个bittorrent客户端。我很难概念化连接的处理方式。我将一步一步地指出困扰我的那部分。如果我做出了不正确的陈述,请纠正我,但在大多数情况下我理解协议,更多的是来自传入对等体的连接以及处理端口和套接字的问题。
因此,当您与智能设备连接时,您会告诉它您将要收听的端口,以及想要与您联系的同伴。
从跟踪器获取的对等词典包括他们正在侦听的所有对等端口。要与这些对等体连接,只需在随机端口上创建一个套接字,然后发送握手。
现在我的问题是,如果你是另一方的同伴。也就是说,如果您正在侦听端口,那么您会给跟踪器,并且对等方会在该端口上向您发送握手,您如何与要将其传输到其他端口的对等方进行通信。
我对端口和套接字感到非常困惑,试图弄清楚如何处理从多个对等端下载并上传的内容,但这里有一些我做过的假设:
我想也许我对端口和插座的理解可能存在缺陷,这使我无法理解这个问题。我希望我也能正确地说明这一点。感谢。
答案 0 :(得分:1)
当您的服务器在特定端口上侦听传入连接时,底层协议将在握手过程中切换到新端口。您不必告诉对等端使用其他端口。