【问题标题】:How to communicate between CE 6.0 device (as server) and PC (as client)CE 6.0 设备(作为服务器)和 PC(作为客户端)之间如何通信
【发布时间】:2008-10-01 09:28:11
【问题描述】:
我们正在开发一种可以运行的测量设备
CE 6.0 和 CF 3.5 在 x86 嵌入式硬件上,PC 用于控制
设备并使用以太网与其连接。
我们想使用接口进行通信(使用 DCOM(我们知道它不是
在 CE6 上默认支持)、.NET Remoting 或 Web 服务)而不是
使用某种(自定义)协议。调用定义在
界面比解析原始数据更容易和优雅。
在这种情况下最好的解决方案是什么?
【问题讨论】:
标签:
c#
embedded
windows-ce
communication
【解决方案1】:
如果您使用的是 CE 6 和 .NET Compact Framework 3.5,您是否考虑过使用 Windows Communication Foundation (WCF)?您必须编写自己的传输,但完成后,您将能够相对轻松地使用您的服务接口。
【解决方案2】:
我有一些在 CE 设备和 PC 之间设置通信的经验,并且使用过使用 winsock 的自定义接口(来回处理一些字节)并尝试过 SOAP。在 Windows CE 5.0 中,Microsoft 提供的 SOAP 服务器每隔几个小时左右就会以某种方式关闭我们的设备。我花了好几个星期试图找出问题所在,认为这是我做错了。所以,我现在更喜欢坚持使用winsock,因为至少我有机会知道发生了什么并且可以解决它。
此外,CE 设备并不总是性能最快的设备,具体取决于您拥有的硬件。 Web 服务将数据转换为 XML 会占用一些开销和时间,这可能会对您造成或无法承受的性能损失。
【解决方案3】:
与 Scott 一样,出于性能和稳定性的原因,我们一直在使用基于套接字的通信。该代码适用于从 Windows CE 2.1 到移动 6.0 的所有设备。我发现 Windows CE 开发人员手册 ISBN 0-7821-2414-3 在开发此功能时非常有用,尽管使用的是 C++ 而不是 C#。