【问题标题】:How to send data over global internet like torrents do?如何像种子一样通过全球互联网发送数据?
【发布时间】:2020-07-23 06:58:27
【问题描述】:

我正在开发一个移动应用程序,我想通过全球互联网将数据发送到其他没有服务器的设备。

假设全球互联网上有 2 台 IP 地址为 XY 的移动设备.他们都知道彼此的地址,并希望在没有远程服务器的情况下相互通信。他们决定为此使用端口 A1。如果 X 会发送数据到端口A1上的Y /em> 是否会在没有 ISP 阻止的情况下交付?

我对网络不是很熟悉,只知道一些基础知识。理论上,只要IP的端口是开放的并且它们通过一些网络连接,它应该可以毫无问题地传递它。我问这个的原因是我对种子如何在没有服务器和静态 IP 的情况下在全球互联网上相互发送数据感兴趣,我也不确定 ISP 是否可以放置任何标准块,例如,每个ISP 只允许 A1-A100 的端口。我知道大多数规则可能取决于 ISP,但对于这个例子,让我们考虑一些典型的普通 ISP。任何解释将不胜感激。

【问题讨论】:

    标签: java kotlin networking


    【解决方案1】:

    叫做打孔,可用于TCPUDP。这个概念其实很简单:

    1. 客户端在中间服务器之间提供他们的套接字信息
    2. 服务器更新套接字信息(如果客户端和服务器之间有 NAT 或代理)
    3. 服务器将套接字信息共享给目标客户端
    4. 客户端通过点对点连接通过其他套接字信息相互连接

    其中许多已经在Github 中。检查一下。

    【讨论】:

    • 从未听说过。感谢您的链接将看看他们!
    • 我一直在研究这个 repo 以进行点对点传输github.com/kern/filepizza
    【解决方案2】:

    我也不是很擅长网络,torrents 与您的浏览器 IP 一起工作。这是一篇文章:How to check your torrent IP address 下面是一些源代码的链接。 WebTorrentBitTorrent 我希望这能让您对它们的工作方式有所了解。

    【讨论】:

      【解决方案3】:

      您的问题:是否可以在全球互联网上的 2 个非静态 IP(例如 2 个手机)之间发送数据,最好使用某些来源。

      简短回答:是的。

      长答案: 有多种选择可以实现这一目标

      1. WebRTC(Web 实时通信)是一种技术,它使 Web 应用程序和站点能够捕获和选择性地流式传输音频和/或视频媒体,以及在浏览器之间交换任意数据而无需中介。

      现在在初始过程中需要服务器,两个对等方将交换数据以相互连接

      2.IPFS - 星际文件系统:点对点超媒体协议 旨在让网络更快、更安全、更开放。它是一种点对点文件传输协议,例如 torrent。

      您可以使用第一个选项 WebRTC,因为它很容易在基于 Web 的现代应用程序中使用,而且现在大多数浏览器都支持 WebRTC

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-17
        • 2021-11-30
        • 2012-01-06
        • 2023-03-21
        • 1970-01-01
        相关资源
        最近更新 更多