【问题标题】:BitTorrent Protocol Java Project - incoming connectionsBitTorrent 协议 Java 项目 - 传入连接
【发布时间】:2012-03-29 18:13:18
【问题描述】:

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

因此,当您与跟踪器连接时,您告诉它您将要监听的端口,以供希望与您连接的对等方使用。

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

现在我的问题是,如果你是另一边的同伴。也就是说,如果您正在侦听您为跟踪器提供的端口,并且对等方在该端口上向您发送握手,您如何与您希望它传输到不同端口的对等方进行通信。

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

  1. 对于您连接的每个对等点,您都使用一个新的端口/套接字,您可以使用该新端口/套接字上传(如果它们是活动对等点)/下载。
  2. 提供给跟踪器的端口仅用于侦听传入的对等体。

我认为我对端口和套接字的理解可能存在缺陷,这使我无法理解问题。我希望我的措辞也正确。谢谢。

【问题讨论】:

    标签: java sockets port bittorrent


    【解决方案1】:

    当您的服务器在特定端口上侦听传入连接时,底层协议将作为握手的一部分切换到新端口。您不必告诉对等方使用不同的端口。

    【讨论】:

    • 我还有一个问题,一个端口是否会从您的总总带宽中获得有限的下载/上传速率?
    • @PeteJodo - 您的实际物理带宽很可能远低于软件的理论吞吐量。 TCP/IP 对端口本身没有任何限制,但这不会阻止操作系统或其他软件/硬件这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-10
    • 1970-01-01
    相关资源
    最近更新 更多