我正在学习 C++(例如,我现在正在安装 Visual Studio,我手里拿着 Horton 的书),我这样做的原因是我想编写一个 p2p 类型的客户端/服务器程序,允许用户无需端口转发即可从设备流式传输视频(并节省大量技术支持呼叫时间)。
我希望用户通过设备菜单将设备注册到家庭服务器(工程师将负责),然后在 PC 上,登录客户端并使用密码将设备添加到众所周知的设备“朋友列表”中他们在机器上使用。然后,他们可以随时打开设备并通过网络控制它,而无需端口转发。
我猜是 Skype 的工作方式。用户可以在不知道彼此的 IP 地址或转发任何端口的情况下相互传输音频/视频。
有人可以给我概述一下它是如何工作的,以及在对主服务器和客户端进行编程时需要考虑的网络注意事项吗?我什至不知道从哪里开始……我不需要编程方面的帮助,只需要通信基础设施的外观。客户端如何在 p2p 网络上发现设备并与之通信,而无需事先知道 IP 地址,或者没有任何端口可以让进入远程网络的信息或命令路由到设备?
我一直在阅读 p2p 网络,我了解 p2p 架构的基本思想,但不了解通过 p2p 进行通信的实际理论和方法。