gpt4 book ai didi

c++ - P2P最重要的基础知识

转载 作者:太空狗 更新时间:2023-10-29 21:26:13 30 4
gpt4 key购买 nike

我一直在 www 上四处阅读,但就是无法获得 P2P 最重要的基础知识。

示意图是这样的:

[peer1]<-->[dsl-router1]<-->[central server]<-->[dsl-router2]<-->[peer2]

我正在中央服务器上开发一个聊天软件。聊天消息现在可以很好地通过中央服务器传输,但是,我需要制作 p2p 文件共享功能,因为服务器的带宽(有线带宽,而不是传输限制)应该仅用于传输聊天消息。

问题是,我在中央服务器上的软件知道 router1 和 router2 的 IP 和端口,但不知道 peer1 和 peer2,因为这些对等点在路由器后面并且没有 IP 地址。

如何在不让这些数据通过中央服务器的情况下将一些数据从 peer1 实际传输到 peer2,反之亦然?

(最坏的情况是peer和dsl-router之间有一个无线路由器)

最佳答案

有两种基本方法可以做到这一点。新的方法是使用 IGDP(通过 uPnP 打开端口)。这在这里描述得很好:

http://www.codeproject.com/Articles/13285/Using-UPnP-for-Programmatic-Port-Forwardings-and-N

如果两个节点都没有支持 uPnP 的路由器,那么另一种选择是 TCP 打洞,它并不完美,但在实践中效果很好。此处对此进行了描述:

http://www.brynosaurus.com/pub/net/p2pnat/

关于c++ - P2P最重要的基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194820/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com