通过 Internet 发送 UDP 数据包

2024-03-30

我正在尝试了解 P2P/去中心化网络的一些细节。我的问题如下。假设我有两台名为 comp1 和 comp2 的机器。现在,comp1 设置在我的家庭网络中的路由器后面,comp2 位于我的办公室中,也位于路由器后面。我是否可以像这样在 Internet 上来回发送 UDP 数据包,当然假设端口已正确转发?为了更深入地了解我正在调查的内容,我试图弄清楚新节点如何在不使用中央服务器的情况下发现现有节点。

谢谢你!


假设,正如您所说,端口转发正确,您可以将 UDP 数据包发送到路由器后面的 2 个客户端。

检测本地 Intranet 上的客户端的一个好方法可能是使用多播,但是这并没有得到 ISP 的广泛支持(至少在英国),因此不能依赖。许多设备发现平台都使用组播,例如 mDNS(用于 Apple 的 Bonjour)

http://en.wikipedia.org/wiki/Multicast http://en.wikipedia.org/wiki/Multicast

(它基本上是通过客户端订阅组,然后向该组发送消息来工作的)

我认为通过互联网发现新客户端的最佳方法是让新客户端联系一台服务器以使其知道它们的存在,然后集中式服务器将告诉所有其他客户端有关您的信息。例如,这在现代战争 2 等 P2P 游戏中使用,这就是“追踪者”在 BitTorrent 协议中所做的事情。

这并不是完全去中心化的,但它可能是最容易实现、也是最可靠的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Internet 发送 UDP 数据包 的相关文章

  • PacketTunnelProvider 网络扩展不称为 Swift 3

    我正在尝试将 PacketTunnerProvider 网络扩展添加到我的项目中 方法 startTunnelWithOptions options String NSObject completionHandler NSError gt
  • 我可以在不使用 system() 命令的情况下用 C 读/写路由表吗?

    我有用 C 编写的代码 我想使用存储在路由表中的 C 代码信息 是否可以 您还可以运行 strace route add 来查看如何route命令执行此操作 在我的系统上 它使用ioctl with SIOCADDRT 稍微搜索一下就会发现
  • MySQL:从另一台服务器选择

    恐怕我已经知道问题的答案 但我还是会问 当有两台 MySQL 数据库服务器时 我可以访问另一台服务器上存储的数据吗 换句话说 我能以某种方式这样做吗 INSERT INTO table x y z SELECT x y x y FROM o
  • 我刚刚在哪个适配器上收到此 UDP 数据包?

    我正在尝试用 C 编写一个 BOOTP 服务器 我正在接收并解析来自客户端的 BOOTP 数据包 我需要回复我的服务器 IP 地址 问题是 计算机可以有多个网络适配器 客户端还没有 IP 地址 有什么方法可以查出 UDP 数据包是在哪个适配
  • 如何在 Docker-Compose 中一起使用主机网络和任何其他用户定义的网络?

    我想将 Docker Compose 文件中定义的两个 Docker 容器相互连接 app and db 其中之一 app 也应该连接到host网络 容器应连接到通用的用户定义网络 appnet or default 使用嵌入式DNS来自
  • Windows 操作系统中无法访问的 IP 套接字关闭时间

    这些代码通过用户数据报协议提供发送数据 下面有两个代码 当我使用第一个代码来处理无法访问的 IP 地址时 我得到了三秒的延迟 请查看新结果标题 只需打开新的 C 控制台应用程序并将这些代码粘贴到其中 第一个代码 using System u
  • 如何从 kubernetes 集群内部访问主机的 localhost

    在此应用程序中 nodejs pod 在 kubernetes 内部运行 而 mongodb 本身作为 localhost 位于主机外部 这确实不是一个好的设计 但它只适用于开发环境 在生产中 将有一个单独的 mongodb 服务器 因为这
  • 自 2012 年以来,WinSock 注册 IO 性能是否有所下降?

    我最近使用 MS 为该 API 提供的稍微可接受的文档编写了基于 WinSock Registered IO RIO 的 UDP 接收 最终的性能非常令人失望 单套接字性能有些稳定 约为每秒 180k 数据包 使用多个 RSS 队列 即多个
  • C++ Boost.asio Ping

    我正在尝试编写一个程序来列出网络上设备的所有 IP 地址 其主要组成部分之一是能够对设备执行 ping 操作 这个程序必须在Linux Windows和Mac上运行 所以我选择了Boost库 我设法在文档中找到这个示例 http www b
  • Python套接字模块:Recv()数据响应被切断

    解释 我目前正在尝试使用 python 脚本控制智能电源板 为了实现这一点 我使用了带有套接字模块的 TCP 连接 大约 75 的情况下 我会得到我正在寻找的响应 数据 并且一切都运行良好 然而 大约 25 的情况下 响应会以完全相同的长度
  • 客户端使用高端口号

    为什么客户端会结束连接 使用高端口号 临时端口 而应用程序 监听通常较小的端口号 谢谢你的优点 卡蒂克 巴拉古鲁 服务器侦听固定端口号 以便客户端知道连接到哪里 客户端不需要使用固定端口号 因为没有人发起与它们的连接 事实上 如果同一台计算
  • Python 套接字库认为套接字未打开时已打开

    我正在使用一些Python 如下所示 HOST 127 0 0 1 PORT 43434 single socket socket socket AF INET socket SOCK STREAM try single bind HOST
  • http客户端在Windows 8.1中取消请求

    我正在开发一个 Windows Phone 8 1 项目 Windows 8 1 中有两个版本的 http 客户端 system net http and windows web http Microsoft 建议使用后者 所以 我决定接受
  • 提高UDP可靠性

    我正在构建一个基于 UDP 的小型服务器 服务器基于 Net并使用它自己的Socket类 我通过 ReceiveMessageFromAsync 和异步发送使用完成端口 我的问题是我失去了大约 5 10 的流量 现在我明白这是正常的 但是有
  • 基于邻近度的负载均衡

    我正在开展一个项目 我们在世界各地拥有大量 目前为 5 台 服务器 客户端通过集中式代理连接到其中一台服务器 我们知道客户的原籍国 但除此之外一无所知 我们完全控制服务器 因此我们可以获得所需的所有信息 我们不控制客户 他们必须按照标准通过
  • 在 PowerShell 中通过 UDP 发送和接收数据

    我正在尝试编写一个脚本来使用 PowerShell 进行测试和应用 测试应包括通过 UDP 向远程服务器发送字符串 然后读取该服务器的响应并对结果执行某些操作 我需要的唯一帮助是脚本的中间两个步骤 发送字符串 然后 接收响应 在端口 UDP
  • 在 Linux/Ubuntu 计算机上通过 Python/Django 设置网络设置

    我正在为嵌入式计算机开发一个简单的网络界面 计算机将附带一个静态默认 IP 然后需要由可能不懂技术 Linux 的安装技术人员进行更新 基本上我需要从 Django 应用程序更改以下系统设置 IP地址 Subnet 默认网关 DNS 服务器
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • 本地主机:8080 是什么意思? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有什么区别本地主机 网络 vs 本地主机 8080 web TCP IP 连接始终与 IP 地址建立 您可以将 IP 地址视为某台计算机的

随机推荐

  • Java Logger:创建以轮转数+.log为后缀的文件

    我正在使用 java util logging 包中的 Java Logger 这就是我当前创建记录器的方式 FileHandler fileHandler new FileHandler filePath 5242880 5 true f
  • Angular2访问父组件的@input值

    我正在尝试使用 ComponentResolver 和 ViewContainerRef 服务动态加载组件 子组件加载正常并且模板已渲染 但是我想访问子组件内父级 字段 和 值 的输入 任何帮助将非常感激 父组件 import Compon
  • 如何在 Scala 中使用 >=> ?

    我正在尝试使用 gt gt Kleisli 箭头 在 Scala 中 据我了解 它由返回单子的函数组成 现在我正在尝试如下 scala gt val f i Int gt Some i 1 f Int gt Some Int
  • JFormattedTextField 未正确清除

    我正在做这个作业 制作一个解决数独的程序 我有一个带有 SudokuTextBox 网格扩展 JFormattedTextField 的面板 我有一个 MaskFormatter 因此每个文本框只接受一个整数 然后在我的面板中 当释放按键时
  • 如何跨 AppDomain 边界传递 CancellationToken?

    我有一个命令对象 根据请求队列中的请求执行工作 此特定命令将在子应用程序域中执行其工作 在子应用程序域中执行其工作的一部分涉及阻塞 ConcurrentQueue 操作 例如 添加或获取 我需要能够通过请求队列将中止信号传播到子应用程序域
  • ASP.NET MVC 3 中 ModelState.IsValid 的限制

    我总是用ModelState IsValid用于检查我在服务器端正确验证的所有模型验证 但我认为使用它有一个限制 例如我定义一个Remote验证属性 但如果我禁用javascript then ModelState IsValid不勾选Re
  • Python:有没有办法阻止从 int 到 long int 的自动转换发生?

    考虑这个例子 gt gt gt from sys import maxint gt gt gt type maxint
  • 如何在 Android 上使用 onPause?

    using onSaveInstanceState Bundle and onRestoreInstanceState Bundle was really good and work but it is working when click
  • Java 堆空间与 GSON

    我正在使用 GSON 创建一些大的 JSON 文件 以从 GTFS Google Transit 创建自定义 JSON 问题是当我从对象类转换为 JSON 时 Gson gson new Gson String rutasJSON gson
  • 用于测试是否正在构建应用程序扩展的预处理器宏是什么?

    这个问题纯粹基于公开发布的有关 iOS 中应用程序扩展引入的文档 随着引入应用程序扩展 https developer apple com library prerelease ios documentation General Conce
  • AppCompat v7:21 拆分操作栏损坏?

    我目前正在开发一个应用程序 其中使用经过大量修改的拆分操作栏 以下是应用程序当前状态的链接 您会注意到顶部有一个透明的操作栏 其中有一个自定义视图 底部有一个拆分在一起的操作栏 底部视图实际上是一个单独的操作项 其中包含一个自定义视图 并且
  • 如何设置gridview行颜色,我尝试过,但它显示强制转换无效?

    protected void gvcolors RowDataBound object sender GridViewRowEventArgs e if e Row RowType DataControlRowType DataRow in
  • 如何添加UIActionSheet按钮复选标记?

    我想知道如何以最简单的方式在 actionSheet 按钮右侧添加复选标记 下面是截图Podcasts app 请注意 该解决方案可能会在将来的 iOS 更新中崩溃 我是 访问未记录的私有 API 这样的解决方案非常脆弱 请参阅下面的评论
  • 如何将密码文本与 bcrypt 哈希值进行比较?

    我的应用程序中有一个用例 应该阻止用户在重置密码时选择最近 3 个密码之一 我使用 Angular 作为前端 使用 Spring Boot 作为后端 在我的场景中 用户密码存储为 bcrypt 哈希 如何将用户输入的密码与最近存储的 3 个
  • 如何替换R数据框中多列中的多个值?

    假设我有以下数据框 真正的数据框是 10 个 labelx 列 id lt c 1 2 3 4 5 6 7 8 label1 lt c apple shoe banana hat dog radio tree pie label2 lt c
  • 当焦点从角度输入中移出时触发验证?

    当我们不断在文本框中输入内容时 电子邮件验证将被触发 我希望当用户将焦点移出文本框时触发此验证 下面是我的代码
  • 有没有一种好的方法可以在Linux中禁止屏幕保护程序?

    我正在寻找一种体面的 不蹩脚的方式来抑制 xscreensaver kscreensaver 或 gnome screensaver 无论哪一个可能正在运行 最好以与屏幕保护程序无关的方式 并且它绝对必须执行fast 我读过xscreens
  • 如何使用ABAddressBook删除iPhone通讯录中的记录?

    我正在学习地址簿框架 然后我想从iPhone通讯录中删除记录 我检查了文档并发现了一个名为ABAddressBookRemoveRecord 但我找不到删除记录的方法 比如用户选择一条记录 然后点击删除按钮 然后该记录就会被删除 到目前为止
  • 安卓 |内容观察者 |内容 URI 不包含资源 ID

    我正在尝试检测 Android 应用程序上的屏幕截图 我使用 contentObserver 来检测媒体目录中的更改 而不是使用 FileObserver 因为已知问题 https code google com p android iss
  • 通过 Internet 发送 UDP 数据包

    我正在尝试了解 P2P 去中心化网络的一些细节 我的问题如下 假设我有两台名为 comp1 和 comp2 的机器 现在 comp1 设置在我的家庭网络中的路由器后面 comp2 位于我的办公室中 也位于路由器后面 我是否可以像这样在 In