我正在使用UDP和UDT进行打洞技术的研究。为了进行最终测试,我需要在不同类型的NAT(对称型、全锥型、限制锥型、端口限制型)下测试应用程序。 是否有任何方法可以模拟这些类型的NAT?我期望得到一种类似于虚拟机的设置。我能否将PC用作路由器,以便按照我的需求进行配置? 通常情况下,我们如何...
我正在使用mingw工具链和windows socket尝试实现TCP打洞。我认为过程是正确的,但洞似乎没有打通。我参考了这个。 A 和 B 连接到服务器 S S 向 A 发送 B 的路由器 IP + 它用于连接到S的端口 S 对 B 也做同样的事情 A 开始了两个线程: 一个线程尝试...
我正在尝试进行一些p2p网络的实验。在做了一些研究后,我发现最大的障碍之一是"如果客户端在NAT/防火墙后面怎么办",后来我发现了关于Hole Punching的知识,但它并不总是能保证成功。 就我所理解的而言,我不明白为什么它可能会失败,这是我目前所知道的: 根据上图,这是我理...
我正在编写一个玩具会议点/中继服务器,监听端口5555,为两个客户端"A"和"B"提供服务。 它的工作原理是:服务器从首先连接的客户端A接收到的每个字节都将被发送到第二个连接的客户端B,即使A和B不知道彼此的IP地址:A -----------> server <-------...
我主要关注移动设备的一般性答案,但某些针对Android的具体方法也可以接受。 给定两个移动设备,如何在它们之间建立连接。我是移动开发的新手,不确定移动设备背后使用的是什么类型的NAT。是否可以通过一些形式的“穿洞”(使用外部服务器来帮助建立连接)将它们连接在一起? 我已经看过这篇文章,但...
我想通过一个带有静态 IP 的服务器来帮助两个客户端进行 UDP 穿透。服务器在端口7070和7071上等待两个客户端连接,并将各自的 IP 地址和端口发送给对方,这部分工作很好地完成了。但是我无法在两个客户端之间建立通信。我尝试在不同的WiFi网络和3G移动网络中运行代码,但是客户端程序会抛...
我一直在学习如何实现UDP打洞,但不知为何无法使其生效。 对于不熟悉UDP打洞的人,这是我的定义: 目标是让两个客户端(客户端A和客户端B)能够在服务器的帮助下传输数据。因此,客户端A连接到服务器并发送其信息。客户端B也是如此。服务器有必要的信息,使得客户端A能够向客户端B发送数据,反之亦...
我尝试使用打洞协议创建服务器客户端。 因此,我向我的服务器发送了客户端IP和客户端端口, 当第二个用户连接时,服务器向两个客户端发送另一个客户端的IP和端口。 因此,当我拥有这个信息时,我尝试在我的两个客户端之间建立连接,但是在boost :: asio中出现了错误。 terminate c...
我尝试使用这篇文章中概述的原理,用Python 3编写了一个基本的TCP防火墙穿透程序。但是,我无法让任何东西连接上。下面是代码: #!/usr/bin/python3 import sys import socket import _thread as thread def clien...