我们拥有各种类型的小型应用服务器,这些服务器只是exe文件。这些应用服务器在各种机器上运行,我需要一种机制来启动/结束应用服务器,而无需前往运行应用服务器的每台PC。我需要的是:
我将安装每个Pc的客户端应用程序,其中app服务器将运行,并且将有一个服务器应用程序可用于监视在各种PC上运行的app服务器。
在客户端上,我们可以详细说明各种应用服务器(只是exe文件)的位置及其友好名称。 (例如c:\ app1.exe,Myapp; d:\ Myotherapp,OtherApp)。
在服务器上,当输入IP地址或主机名时,它会向客户端发送一个请求,该请求将回复它能够运行的应用服务器(MyApp,OtherApp),它将会最初报告他们的状态为STOPPED。当针对特定应用服务器按下服务器上的开始按钮时,它将向客户端发送消息以启动特定应用服务器。客户端上运行的应用服务器的状态将定期刷新(通过交换上述消息)< / p>
如果某个其他服务器已启动并指向同一客户端,则会报告客户端上运行了2个应用服务器,其中一个已启动。按下停止按钮后,它将在客户端上发送消息以停止特定的应用服务器。
我最初想过使用这种技术:
当服务器希望任何特定PC启动其应用服务器时,它只会在数据库表中创建一个条目。
客户端定期嗅探表,当它看到创建了一个条目时,它将启动该程序。
但是这种技术很差,因为它使用轮询,客户端将继续查询数据库。我想要推送一些消息。
socket编程是否可以解决这个问题,还是有简单的方法?