25得票2回答
如何模拟不同的NAT行为

我正在使用UDP和UDT进行打洞技术的研究。为了进行最终测试,我需要在不同类型的NAT(对称型、全锥型、限制锥型、端口限制型)下测试应用程序。 是否有任何方法可以模拟这些类型的NAT?我期望得到一种类似于虚拟机的设置。我能否将PC用作路由器,以便按照我的需求进行配置? 通常情况下,我们如何...

19得票4回答
TCP穿透技术

我正在使用mingw工具链和windows socket尝试实现TCP打洞。我认为过程是正确的,但洞似乎没有打通。我参考了这个。 A 和 B 连接到服务器 S S 向 A 发送 B 的路由器 IP + 它用于连接到S的端口 S 对 B 也做同样的事情 A 开始了两个线程: 一个线程尝试...

7得票2回答
在Node.js中进行TCP打洞

我正在尝试在node.js中穿过两个NAT打通TCP隧道。问题是我无法确定连接应该使用哪个本地端口?

27得票5回答
什么是p2p穿透技术?为什么它很难实现?

我正在尝试进行一些p2p网络的实验。在做了一些研究后,我发现最大的障碍之一是"如果客户端在NAT/防火墙后面怎么办",后来我发现了关于Hole Punching的知识,但它并不总是能保证成功。 就我所理解的而言,我不明白为什么它可能会失败,这是我目前所知道的: 根据上图,这是我理...

12得票2回答
如何在两个客户端连接到会议点服务器后,使它们直接相互连接?

我正在编写一个玩具会议点/中继服务器,监听端口5555,为两个客户端"A"和"B"提供服务。 它的工作原理是:服务器从首先连接的客户端A接收到的每个字节都将被发送到第二个连接的客户端B,即使A和B不知道彼此的IP地址:A -----------> server <-------...

10得票3回答
直接在两个移动设备之间通信

我主要关注移动设备的一般性答案,但某些针对Android的具体方法也可以接受。 给定两个移动设备,如何在它们之间建立连接。我是移动开发的新手,不确定移动设备背后使用的是什么类型的NAT。是否可以通过一些形式的“穿洞”(使用外部服务器来帮助建立连接)将它们连接在一起? 我已经看过这篇文章,但...

18得票3回答
UDP穿透Java示例

我想通过一个带有静态 IP 的服务器来帮助两个客户端进行 UDP 穿透。服务器在端口7070和7071上等待两个客户端连接,并将各自的 IP 地址和端口发送给对方,这部分工作很好地完成了。但是我无法在两个客户端之间建立通信。我尝试在不同的WiFi网络和3G移动网络中运行代码,但是客户端程序会抛...

16得票4回答
UDP打洞。让服务器与客户端通信。

我一直在学习如何实现UDP打洞,但不知为何无法使其生效。 对于不熟悉UDP打洞的人,这是我的定义: 目标是让两个客户端(客户端A和客户端B)能够在服务器的帮助下传输数据。因此,客户端A连接到服务器并发送其信息。客户端B也是如此。服务器有必要的信息,使得客户端A能够向客户端B发送数据,反之亦...

7得票1回答
使用boost::asio实现的打洞技术

我尝试使用打洞协议创建服务器客户端。 因此,我向我的服务器发送了客户端IP和客户端端口, 当第二个用户连接时,服务器向两个客户端发送另一个客户端的IP和端口。 因此,当我拥有这个信息时,我尝试在我的两个客户端之间建立连接,但是在boost :: asio中出现了错误。 terminate c...

9得票1回答
TCP打洞存在的问题

我尝试使用这篇文章中概述的原理,用Python 3编写了一个基本的TCP防火墙穿透程序。但是,我无法让任何东西连接上。下面是代码: #!/usr/bin/python3 import sys import socket import _thread as thread def clien...