Sockets 如何使TCP套接字在internet上工作 我在一个支持成熟的C++组件的团队中工作,它们在Windows上使用TCP套接字进行通信。在局域网上,这很好,但我们希望将服务器移动到internet,并为我们的客户托管它。这不是传统的客户机-服务器设置,因为服

Sockets 如何使TCP套接字在internet上工作 我在一个支持成熟的C++组件的团队中工作,它们在Windows上使用TCP套接字进行通信。在局域网上,这很好,但我们希望将服务器移动到internet,并为我们的客户托管它。这不是传统的客户机-服务器设置,因为服,sockets,tcp,firewall,Sockets,Tcp,Firewall,如何使TCP套接字在internet上工作 我在一个支持成熟的C++组件的团队中工作,它们在Windows上使用TCP套接字进行通信。在局域网上,这很好,但我们希望将服务器移动到internet,并为我们的客户托管它。这不是传统的客户机-服务器设置,因为服务器可以启动通信。我知道网络管理员不太可能同意允许公共互联网上的服务器呼叫防火墙后面的客户端,因此需要进行一些重新开发。似乎有各种各样的方式进行,但由于对通信知之甚少,我发现很难决定哪些选项值得研究。有没有明显最好的办法 C是有利于C++开发

如何使TCP套接字在internet上工作 <>我在一个支持成熟的C++组件的团队中工作,它们在Windows上使用TCP套接字进行通信。在局域网上,这很好,但我们希望将服务器移动到internet,并为我们的客户托管它。这不是传统的客户机-服务器设置,因为服务器可以启动通信。我知道网络管理员不太可能同意允许公共互联网上的服务器呼叫防火墙后面的客户端,因此需要进行一些重新开发。似乎有各种各样的方式进行,但由于对通信知之甚少,我发现很难决定哪些选项值得研究。有没有明显最好的办法


C是有利于C++开发的新的。

这取决于它,你的客户是否可以在防火墙中添加一个条目,允许服务器直接与它们通信?因为您的客户可以有多个本地IP地址,而只有一个公共IP地址,所以这可能吗。然后,当服务器主动采取行动时,它将只能与一台主机通信。这里的问题是NAT/PAT。简而言之,您应该重构应用程序,以便主动权始终来自防火墙后面运行的客户端,而不是来自服务器。这样,您的客户就不必重新安排防火墙。