C++ 远程控制应用程序设置

C++ 远程控制应用程序设置,c++,windows,network-programming,remote-access,C++,Windows,Network Programming,Remote Access,我有一个解决方案,作为客户端服务,并做一些后台工作。此应用程序需要在安装时进行一些设置(从xml文件读取),并定期进行修改。为方便起见(因为此服务安装在多台机器上),我想从中央服务器应用程序远程控制这些设置。如果服务器和客户机在局域网内,这可以正常工作,但我希望控制这些设置,即使客户机在网络外或服务器在防火墙后面。有什么解决方案可以做到这一点?显然,解决方案完全取决于您想要实现的目标。但如果我理解正确的话,防火墙出现“问题”的原因是,您只需使用标准网络文件访问通过网络访问包含XML的文件。通常(

我有一个解决方案,作为客户端服务,并做一些后台工作。此应用程序需要在安装时进行一些设置(从xml文件读取),并定期进行修改。为方便起见(因为此服务安装在多台机器上),我想从中央服务器应用程序远程控制这些设置。如果服务器和客户机在局域网内,这可以正常工作,但我希望控制这些设置,即使客户机在网络外或服务器在防火墙后面。有什么解决方案可以做到这一点?

显然,解决方案完全取决于您想要实现的目标。但如果我理解正确的话,防火墙出现“问题”的原因是,您只需使用标准网络文件访问通过网络访问包含XML的文件。通常(出于正当理由)被防火墙阻止

因此,解决方案是使用标准协议和“非标准服务”。例如,如果允许机器输入HTTP请求,则可以使用基于HTTP的post消息更新XML内容,或者将整个文件作为文件上载发送,或者制定自己的远程访问协议。如果不允许HTTP,那么您必须查看防火墙中还有哪些其他“漏洞”,并对另一个“漏洞”执行类似操作

另一个不那么晦涩的解决方案当然是简单地使用远程桌面或安全shell连接来远程访问机器。当然,再次假设这种连接是允许的


没有神奇的“绕过防火墙”解决方案-您必须以某种方式在防火墙规则范围内工作。

您确定您的所有客户都会喜欢这一点吗?他们的安全官员呢?我在考虑使用一个中间公共服务器来为所有客户端服务,但我不希望中间服务器存储设置文件(因为我没有必要的硬件),而只是在客户端服务和具有设置的服务器之间进行通信,类似于bittorent协议的工作方式。。但是,如果客户机服务和设置服务器位于不同的网络中,我不确定如何在它们之间建立连接。也许我可以使用STUN服务器实现或端口转发。。