如何在CE 6.0设备(作为服务器)和PC(作为客户端)之间进行通信
我们正在开发将运行的测量设备
在x86嵌入式硬件上具有CF 3.5的CE 6.0,使用PC来控制
设备,并通过以太网与其连接。
我们想使用接口进行通信(使用DCOM(我们知道这不是
在CE6,.NET Remoting或者Web服务上默认受支持),而不是
使用某种(自定义)协议。在
界面非常容易和优雅,然后可以解析原始数据。
在这种情况下最好的解决方案是什么?
解决方案
我有一些在CE设备和PC之间建立通讯的经验,并且使用了使用winsock的自定义接口(来回转发一些字节),并尝试了SOAP。在Windows CE 5.0中,Microsoft提供的SOAP服务器每隔几个小时就会以某种方式关闭我们的设备。我花了很多周的时间来尝试找出问题所在,并认为这是我做错了的事情。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。.。。。。。。。。。。。。。。。。。。。。。。。..........。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。因此,我现在宁愿坚持Winsock,因为至少我有机会知道发生了什么并可以解决它。
而且,取决于我们所拥有的硬件,CE设备并非总是性能最快的设备。 Web服务占用一些开销和时间,将数据转换为XML,这可能会影响我们承受或者无法承受的性能。
如果我们使用的是CE 6和.NET Compact Framework 3.5,是否考虑过使用Windows Communication Foundation(WCF)?我们必须编写自己的传输方式,但完成后,我们将可以相对轻松地使用服务接口。
与Scott一样,出于性能和稳定性的考虑,我们走上了使用基于套接字的通信的道路。该代码在从Windows CE 2.1到移动6.0的所有设备上都能很好地工作。我发现Windows CE开发人员手册ISBN 0-7821-2414-3对于开发此功能非常有用,尽管使用的是C ++而不是C#。