通过TCP / IP控制多个机器人

时间:2012-02-26 11:58:39

标签: .net wcf sockets compact-framework embedded

我正在开发一个涉及通过TCP / IP在单个网络中控制多个轮式机器人(运行.NET Compact Framework)的项目。

控制可以在网络外部进行。

最初我选择套接字,但后来WCF似乎是一个更好的选择。

网络架构涉及一个托管WCF服务的服务器和一个用于网络中每个设备的控制队列。客户端应用程序从网络内部/外部连接到服务器,找到合适的设备并开始控制。

初始化设备后,它会一直轮询WCF服务以检查其队列中的新命令,而客户端应用程序则将命令发送到适当的队列。

我想知道,此解决方案在最小延迟方面有多好?有没有办法可以删除轮询,并强制服务器向新设备命令发送的设备发送中断?

我可以做些什么改进来减少延迟?

1 个答案:

答案 0 :(得分:1)

WCF支持全双工通信......所以你肯定想要删除“轮询”架构,只需让服务器在用户按下按钮(或任何控件)时向客户端发送命令。

WCF上有很多很好的教程......这是我多年前写的一篇文章 - 但它非常简单,可以是一个好的开始:Client Server Programming with WCF

编辑:那篇文章比较了做“套接字”的方式,以及WCF如何让它变得更容易。另外,我忘了提及你的延迟问题的答案 - 如果你使用“net.tcp”绑定(在文章中使用),它将表现得非常快。