我在网络上有一些计算机,网络以某种方式串行,我的意思是计算机通过无线电发射器相互连接在一起,如果无线电发射器关闭或遇到其他计算机无法访问的某些问题。
建筑将是这样的:
RT =无线电发射器
Computer#1<-RT#1->Computer#2<-RT#2->Computer#3<-RT#3->....<-RT#(N-1)->Computer#N
计算机之间的距离约为20至30公里,网络速度在0到10Kbps之间变化。计算机正在运行Windows XP,并且总是运行一个负载很高的程序(2GB内存,90%CPU使用率),所有计算机IP地址都是已知的并且是静态的。
我打算编写一个程序,它将在每台计算机上运行,并在该计算机上运行或安装和更新命令或程序包。由于低速网络和断开连接的高风险,在计算机之间发送数据应该具有恢复能力。问题是我应该如何实现?使用.NET远程处理或使用简单的网络套接字和TCP?哪一个更好?随意解释您认为适合此解决方案的建议或方法。
答案 0 :(得分:5)
阅读UUCP,历史上是解决此问题和配置的方法。
答案 1 :(得分:1)
我曾经在一个糟糕的联系中发展。
我的包裹在几小时后(IIRC 3-6小时)返回。
非常感谢合同结束:)
玩得开心!我感觉到你的痛苦。
答案 2 :(得分:1)
如何添加一个充当服务器的新系统。该系统将托管一个服务(可能还有一个数据库)来控制网络上的所有操作。 由于所有IP地址都是静态的,因此可以在断开连接时轻松跟踪和重新跟踪。
对于大型传输,您可以压缩和拆分包并单独发送。如果发生故障,传输将从损坏的数据包重新启动。使用单独的服务器,可以轻松维护所有这些统计信息,并相应地控制流量。
如果CPU负载较低,客户端甚至可以ping服务器以查找挂起的命令/升级。
使用WCF可以进行双向/双工传输。
What You Need To Know About One-Way Calls, Callbacks, And Events
答案 3 :(得分:0)
您可以使用基于消息传递的NServiceBus等框架,然后从连接本身抽象出您的程序。
系统可以在线路的某个位置使用缓冲区进行“重复直到成功”消息传递,并且您不必担心过多的低级别内容。
我不确定它是否允许大数据传输,但请查看命令