问题标签 [nat-traversal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 需要帮助进行 udp 打孔
嘿,我正在开发一个在 java 中创建 p2p 网络的项目。我已经为本地局域网使用 UDP 构建了 n/w,并且我正在努力通过互联网发送 UDP 数据报。我遇到了这个称为 UDP 打孔的概念,但似乎找不到任何相关的主题或库。有人可以帮忙吗?
flash - 是否可以在 NetConnection 上强制使用源端口?
我是 ActionScript 的新手,但我正在尝试破译一个预先存在的项目并进行一些修改。
我有一段代码从创建新的NetConnection开始,然后从外部源流式传输媒体文件。我在文档中看到您可以提供目标端口(通过 URL),但是是否可以强制 Flash 使用特定的源端口?我在文档中找不到明确的方法来做到这一点,但我很好奇其他人是否有替代方法或想法。
这样做的最终目标是我希望能够以可预测的方式使用源端口来进行NAT 打孔。感谢您的任何建议或答案!
actionscript-3 - Adobe AIR、URLRequest 和本地端口
我正在考虑用 Adobe AIR 编写一个应用程序,但我想先弄清楚这在平台上是否可行。(大多数是 Flash 和 AIR 的新手)
我想做的是提前知道a将使用哪个本地端口。URLRequest
如果可能的话,我想保持连接打开,并继续使用同一个套接字。
我基本上想要完成的是提前进行一些 NAT 遍历和端口协商。一旦我已经协商好客户端和服务器,我希望它们连接并基本上以对等方式使用 HTTP 来流式传输媒体,例如这个示例:
问题是我看不到这种情况发生,除非我可以从 AIR 获得一些关于它计划使用哪些端口的信息。我可以创建自己的Socket
与服务器的连接并使用它们,但我需要一种方法来利用 Sound 框架以相同的方式从套接字流式传输。
想法?想法?谢谢!
.net - .Net WCF NAT 遍历的最佳实践
我正在为 .Net 中的点对点 NAT 遍历寻找建议或解决方案。假设我有一个聊天应用程序,两个客户端需要连接,但都在 NAT 后面:
对于家庭场景,uPNP 可能没问题,因为只涉及电缆调制解调器或消费者路由器。但是,无法实现 uPNP 的企业环境呢?
我熟悉 UDP 打孔,它可以用于握手,但我宁愿不依赖它来传输真实的应用程序数据。
我还研究了 IPv6 和 Teredo,但我不确定每个客户端都会有 IPv6 可用性,而且对于 Teredo 的所有要求(服务器、中继等)来说,这有点令人困惑。
现在是 2011 年,IM/Chat 客户端已经存在了 10 年,甚至还有一些——所以我相信这个问题已经解决了很多次。谁能推荐这个领域的最佳实践?提前致谢!
java - Java Stunt 和 URI 发现
我正在开发一个实时视频 Java 应用程序,并且遇到了 NAT 遍历的常见问题 - 两台计算机可以在本地网络上相互连接,但当它们位于 NAT 后面时则不能。我做了一些研究,最简单的选择是Cornell 的 JSTUNT 库。
但是,似乎需要您使用 URI 将计算机连接在一起,我真的不知道该怎么做 - 有没有办法在 Java 中发现您自己的 URI?
他们的 STUNTServer 类似乎旨在执行此操作,但据我所知,仅返回 socket.getSocketAddress() - 这似乎与 URI 不同。
任何见解将不胜感激。
browser - 无需外部服务器的 NAT 穿越
我一直在阅读有关 TURN 和 STUN 服务器的信息,因为我想开发一个浏览器到浏览器的应用程序,以便 BrowserA(在 NAT 之后)可以与 BrowserB(在 NAT 之后)进行通信。在这种情况下,我认为我应该使用 TURN 协议。
我的问题:有没有其他不需要外部物理服务器的解决方案?一个公正的软件解决方案将是完美的。
谢谢
networking - 我想使用 P2P 构建一个去中心化的、类似 reddit 的系统。我应该基于什么现有的 p2p 库?
我想使用 P2P 构建一个去中心化的、类似 reddit 的系统。基本上,我想保留 reddit 的基本功能,但使其去中心化,使其更加健壮且不受审查。这也将允许人们开发不同的客户端来匹配他们想要浏览它的方式。
你能推荐好的 p2p 库来作为我工作的基础吗?它们应该是开源的、跨平台的、强大的和易于使用的。我不太在乎语言,我可以适应。
java - 如何在我的局域网上找到另一台不可公开访问的计算机的正确 IP 地址?
我正在编写一个分布式 Java 应用程序,但网络方面的事情让我很困惑。由于某种原因,它无法正常工作。我认为这是因为我通过 ipconfig /all 获得的 IP 地址无法从 LAN 外部访问。我感谢任何提示或建议。
upnp - UPnP 自动选择外部端口
如果需要打开端口,我正在尝试制作一个使用 UPnP 的应用程序,以便可以接收传入的传输。问题是,我不想指定外部端口(因为一,外部端口对于找到应用程序并不重要,二,我想确保同一路由器上的多个人可以使用该应用程序,并且共享端口显然不是一种选择)。我正在查看的所有 API 都没有说明开始无法指定端口,但会发送类似0
或-1
导致它自己选择端口的内容,还是我必须选择一个随机数并希望最好?
另外,端口映射是否会过期,还是我必须强制取消所有映射?我想知道以防万一应用程序崩溃或计算机断电或其他情况。
wcf - 在运行时使用 WCF 进行 NAT 遍历的点对点
正如标题所说,是否有可能在两个可以通过 NAT 的系统之间建立 P2P 连接。这两个程序连接到 WCF 服务,该服务将某些已连接的客户端标识为其他已连接的客户端。然后程序接收有关彼此的信息。这是我不确定的地方。这两个相互了解的程序如何直接相互连接,以便它们可以在不通过服务发送任何信息的情况下进行通信。我不确定您是否可以在 WCF 中执行此操作,但如果不能,是否还有其他解决方案。任何源代码都会很棒。