我想写一个程序,将连接到许多计算机从一台计算机。有点像“命令中心”,你可以在一台电脑上远程监控所有的远程系统。
我的计划是在一个表单上有多个客户端套接字。他们将远程连接到个人电脑。因此,他们可以要求他们的信息显示在窗口上。远程个人电脑将成为主机。这个是可能的吗?
发布于 2014-09-25 20:26:06
直截了当地回答你的问题:是的,你可以这样做。
很长的答案:是的,你能做到,但是你确定你的设计是正确的吗?您确定要创建一个到每个客户端的并行连接吗?也许你不知道!如果是,那么您可能希望在单独的线程中运行它们。
如果你想不时地发送一些命令(而且你不是在做某种持续的视频监控),你为什么不使用一个连接和客户端之间的“切换”呢?
我不能告诉您更多关于设计的内容,因为从您的问题中不清楚您想要构建什么(确切地说,您正在“监视”什么)。
非常重要!
在设计应用程序之前,要考虑两个重要的注意事项(只有当远程计算机不在局域网(您通过Internet连接到它们)时,这两个相关信息才会被考虑在内):
发布于 2014-09-25 20:56:14
实际上,您需要的是运行在机器上的模块上的一个ServerSocket。您的所有远程PC将通过他们的个人ClientSocket连接到其中。
您可以将ClientSocket放在运行在您的计算机上的模块上,将ServerSocket放在运行在远程机器上的模块上,从而使您的设计完全相反。
但是最终您将为每个ClientSocket创建一个ServerSocket,如果远程服务器的数量增加了怎么办。
现在,如果您仍然希望在您的机器上有多个ClientSockets,那么就像where说的那样,您可能需要一个多线程应用程序,其中每个线程负责一个ClientSocket。
发布于 2014-09-26 06:42:01
我推荐Internet (Indy),因为它们在线程中工作得很好,而且您可以为每个连接指定一个连接超时,这样您的监控应用程序将能够比默认的OS连接超时更快地获得一个“负”测试结果。
我不会将它们放在表单上,而是将每个客户端包装在一个运行内部监视线程的类中。最初工作更多,但更容易相互独立。
https://stackoverflow.com/questions/26046280
复制相似问题