我正在通过 IRC 制作一个简单的文件传输程序,当我阅读时,我看到 IRC 在共享文件时会在独立于服务器的两个用户之间创建直接连接(DCC,直接客户端连接)。搜索了一段时间后我发现了这个:Direct Connect和 Advanced Direct Connect .
这些页面都没有回答这个我无法摆脱的问题:在没有任何用户执行特殊端口转发的情况下是否可以进行 P2P 数据传输? 允许使用帮助建立连接的中间服务器(如 IRC 示例中所示)。数据传输本身必须独立于服务器。
最佳答案
是的 - 如果您可以让外部服务器为您转发连接请求,则可以使用所谓的打洞技术来建立直接连接。 This technical paper有更详细的解释。
请注意,这些不一定适用于所有 NAT - 但它们确实适用于相当多的NAT。
关于networking - 没有端口转发可以做P2P吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692367/