我正在寻找一个程序,它将从一台计算机连接到许多计算机。有点像"指挥中心"您可以在一台PC上远程监控所有远程系统。
我的计划是在表单上放置多个客户端套接字。他们将远程连接到个人电脑。因此,他们可以向他们请求信息以显示在窗口上。远程PC将是主机。这可能吗?
答案 0 :(得分:3)
直接回答您的问题:是的,您可以这样做。
答案很长:是的,你可以这样做,但你确定你的设计是正确的吗? 您确定要创建并行连接,每个客户端一个吗?可能你没有!如果是,那么您可能希望在单独的线程中运行它们。
如果您想不时发送一些命令(并且您没有进行某种持续的视频监控),为什么不使用一个连接并在客户端之间“切换”?
我无法告诉你更多有关设计的信息,因为你的问题并不清楚你想要建立什么(你究竟是什么'监控')。
非常重要!
在设计应用程序之前需要考虑的两个重要注意事项(仅当远程计算机不在LAN中时才通知相关者(通过Internet连接到它们)):
答案 1 :(得分:2)
您实际需要的是在您的计算机上运行的模块上的一个ServerSocket。 所有远程PC将通过其各自的ClientSocket连接到其中。
通过将ClientSocket放在计算机上运行的模块和远程计算机上运行的模块上的ServerSocket上,可以使设计成为其他方式。
但是你最终会为每个ServerSocket创建一个ClientSocket,如果你的远程服务器数量增加了会怎么样。
现在,如果您仍希望在您的计算机上安装多个ClientSockets,那么Altar表示您可能需要一个多线程应用程序,其中每个线程负责一个ClientSocket。
答案 2 :(得分:0)
我建议使用Internet Direct(Indy),因为它们在线程中运行良好,并且您可以指定每个连接的连接超时,以便您的监控应用程序能够获得“否定”消息。测试结果比默认的OS连接超时更快。
我将每个客户端包装在一个运行内部监控线程的类中,而不是将它们放在表单上。最初的工作量更多,但更容易保持彼此独立。