我正在寻找一个程序,将从一台计算机连接到许多计算机。有点像“命令中心”,您可以在一台PC上远程监控所有远程系统。多个ClientSocket组件可以放在一个表单上吗?
我的计划是在表单上有多个客户端套接字。他们将远程连接到个人电脑。所以,他们可以要求他们的信息显示在窗口上。远程PC将成为主机。这可能吗?
我正在寻找一个程序,将从一台计算机连接到许多计算机。有点像“命令中心”,您可以在一台PC上远程监控所有远程系统。多个ClientSocket组件可以放在一个表单上吗?
我的计划是在表单上有多个客户端套接字。他们将远程连接到个人电脑。所以,他们可以要求他们的信息显示在窗口上。远程PC将成为主机。这可能吗?
直接回答你的问题:是的,你可以做到这一点。
长答案:是的,你可以这样做,但你确定你的设计是正确的吗? 您确定要创建并行连接吗,每个客户端一个?可能你没有!如果是,那么你可能想要在不同的线程中运行它们。
如果你想不时地发送一些命令(并且你没有进行某种常量视频监控),为什么不使用一个连接和客户端之间的“切换”?
我不能告诉你更多关于设计的信息,因为你的问题并不清楚你想要建立什么(你究竟在监视什么)。
非常重要!
两个重要的注意事项要考虑到设计你的应用程序之前(包括相关者只有在远程计算机不在局域网(您通过Internet连接到它们)):
3.如果您确实拥有静态IP,您是否有域名,您可以将子域指向该IP? (+1)如果有一天你决定把你的服务器移到不同的IP地址,你也会有一场噩梦。 DNS可以解决这个问题。 – 2014-09-26 02:19:21
问题是关于连接到主机(服务器),你的答案是关于连接到客户端。另外,打开防火墙端口不是“火箭科学”,我不会说它给了'*很多问题*'。 – mjn 2014-09-26 06:37:40
@ mjn-当它是关于你自己的路由器时,它确实不是一个火箭科学(尽管我有两台拒绝工作的路由器......现在很多路由器都有错误的软件)。但看起来他需要将应用程序交付给随机用户。在这种情况下,由于路由器的原因,“点击并运行”解决方案是不可能的。他将不得不向用户解释如何配置路由器。每个路由器都有自己的设置程序。 – Ampere 2014-09-27 12:26:07
实际需要的是您的计算机上运行的模块上的一个ServerSocket。 您的所有远程PC都将通过它们各自的ClientSocket连接到其上。
您可以通过将ClientSocket放置在您的机器上运行的模块上并将ServerSocket放在远程机器上运行的模块上,让您的设计以其他方式进行。
但是你最终会为每个ServerSocket创建一个ClientSocket,如果增加了远程服务器的数量会怎样。
现在,如果你还是希望有你的机器上的多个ClientSockets那么作为祭坛说你需要一个多线程应用程序,每个线程负责一个ClientSocket的。
我建议互联网直接(印),因为它们在线程运行良好,并可以指定每个连接的连接超时,让您的监控应用将能够得到一个“负面”测试结果比快默认的OS连接超时。
而不是将它们放在窗体上,我会将每个客户端包装在运行内部监视线程的类中。最初更多的工作,但更容易保持相互独立。
什么样的监测?监控?系统性能?约会时间?您的“监控”权重将定义您对可扩展性的要求。 – 2014-09-26 02:06:47
同意杰瑞。没有这些问题的答案,就有太多未知变量。 – Ampere 2014-09-27 12:32:02