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