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