5 .net performance network-programming tcp
我在网络上有一些计算机,网络以某种方式串行,我的意思是计算机通过无线电发射器相互连接在一起,如果无线电发射器关闭或遇到其他计算机无法访问的某些问题.架构将是这样的:
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?哪一个更好?随意解释您认为适合此解决方案的建议或方法.
添加一个充当服务器的新系统怎么样?该系统将托管一个服务(可能还有一个数据库)来控制网络上的所有操作。由于所有 IP 地址都是静态的,因此在断开连接时可以轻松跟踪和重新跟踪。
对于大型传输,您可以压缩和拆分数据包并单独发送。如果发生故障,传输将从损坏的数据包重新开始。通过单独的服务器,可以轻松维护所有这些统计数据,并相应地控制流量。
在 CPU 负载较低的情况下,客户端甚至可以 ping 服务器以获取待处理的命令/升级。
使用 WCF 可以进行双向/双工传输。