c# - 将文件从 PC 复制到 Windows Mobile 设备的好方法是什么?

标签 c# .net windows-mobile file-transfer

我有一个在服务器上运行的 C# 应用程序,它需要将文件复制到多个 Windows Mobile 5.0 设备。这些设备通过支持以太网的底座直接连接到网络(因此它们不通过 ActiveSync 连接到 PC)。

执行此操作我有哪些不同的选择?我知道 RAPI 可以做到这一点,但我不确定它是否可以像这样直接通过网络复制一些东西。另外,我知道 RAPI 使用 ActiveSync DLL,因此需要安装 ActiveSync,我们希望尽可能避免这样做。

WMI 有可能吗?如果我们能以某种方式获取每个设备的 IP 地址,我们可以使用普通的 File.IO 吗?代码示例或常识将是最受欢迎的。

最佳答案

普通文件 I/O 将无法工作。这些设备没有文件共享操作系统组件,因此您不能像在 PC 上那样通过网络“浏览”它们。

RAPI确实使用了ActiveSync,所以你不仅要安装AS,还必须主动连接设备,而且ActiveSync一次只允许一个设备连接,所以它不会按你的要求工作。

我对这种情况的解决方案一直都是一样的。您必须在设备上安装某种“监听器”,无论是您部署的应用程序还是某种形式的安装程序。有时我会在插入的 CF/SD 卡上使用自动运行应用程序(完全取决于您的拓扑结构)。

我通常让该应用程序监听来自 PC 的“发现”数据包的 UDP 广播。当他们收到它时,他们又通过 UDP 广播他们的 IP 地址,PC 收集这些地址。然后,PC 通过监听器应用程序通过 TCP 套接字将文件发送到设备。

最近我一直在通过托管在 Padarn 中的 REST 服务来完成所有设备端的工作,以最大限度地减少我必须在设备上编写的通信代码的数量,但是你可以使用 Udp/TcpClients 来完成这一切,而不用太难度很大。

关于c# - 将文件从 PC 复制到 Windows Mobile 设备的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2601067/

相关文章:

c# - 可以在 Linux 中使用 MonoDevelop 编译 Visual Studio 2010 .Net 项目吗?

c# - 需要 Windows-Mobile 上的签名示例(油漆)

c# - Rijndael 算法(如何创建我们自己的 key )

c# - 无法计算表达式,因为当前线程处于堆栈溢出状态

C# 正则表达式可选匹配

c++ - 如何在 Windows Mobile 6 上获得 "busy wheel"?

windows-mobile - Windows Mobile 6 - 在 WinForms 文本框上禁用自动完成

c# - Windows phone 7 绑定(bind)颜色到文本框

c# - 模拟任何给定类型参数的泛型方法调用

c# - 使用CsvHelper、CsvReader.Read()时如何忽略空格?