我正在尝试编写一个基于点对点技术的 C++ 聊天程序,不需要服务器。假设对等点使用其 IP 地址作为标识符相互连接。
我可以在不在路由器上配置端口转发的情况下监听传入连接吗?
最佳答案
如果对等点不在 NAT 后面,则有可能。如果是,则必须进行端口映射(转发端口)。您可以轻松编写一个函数来检查对等计算机是否在 NAT 后面。如果是,您可以重新考虑使用服务器作为对等点之间消息的传输位置。
编辑: 您还可以考虑使用公共(public) VPN 作为代理(包括端口转发)。但是,很难找到免费的。即使您愿意为此付费,也无法保证没有人会收听,您将依赖于 VPN 服务器的正常运行时间。
关于C++ P2P在没有端口转发的端口上监听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643797/