2008-12-05 86 views
5

我正在開發一個項目,在手機上運行的程序需要與其連接的PC上運行的程序進行通信。理想情況下,我想使用USB,WiFi,任何通信。Windows Mobile(C#) - 手機和PC之間的通信

這兩個程序應該能夠溝通像電池壽命,短信等東西......但我可以在以後工作,我只需要讓他們說話。

這樣做的最好方法是什麼?

回答

2

「最佳」真的是主觀的,高度依賴於大量的類似的設備,拓撲,防火牆的存在,需要對安全性等因素,等等

你在哪裏需要通訊科發起,並會讓你有一個ActiveSync連接?如果PC啓動通信並且你有ActiveSync,那麼RAPI就是你使用的傳輸,因爲它已經完成了所有的基礎設施並準備好了。

對於其他任何你需要某種形式的專有協議和傳輸機制。通常,我編寫一個簡單的套接字協議,其中具有定義的消息結構(通常是消息ID,CRC,消息長度和數據有效載荷)。然後我有一些處理通信的基類消息類和一組我想要的特定命令的派生消息。對於需要響應的雙向東西,我通常創建一個基本的Response類,然後從中派生出特定的響應格式。

3

假設你有WiFi連接,Windows Mobile程序與PC通信的一種方法是在.NET Compact Framework 3.5上使用WCF。

你會創建一個新的WCF應用程序來運行你的電腦,並暴露一個接口,暴露你想從你的Windows Mobile設備調用的函數。

Windows Mobile上的WCF需要在您的設備上安裝Compact Framework 3.5。 您還需要「Windows Mobile電動玩具」才能生成兼容的代理以便從Windows Mobile撥打電話。

Power Toys for .NET Compact Framework 3.5

調用從您的WM設備WCF服務也需要你手動設置綁定和端點傳遞到Web服務代理(與桌面WCF,這是由配置文件加載它們自動完成)。

Windows Mobile上的WCF目前只支持基本的http綁定(如果需要可以加密),但這可能已經足夠滿足您的需求。

+0

這是一個非常乾淨的方法。它確實需要相當多的編碼,但聽起來非常好。 – Ash 2013-07-18 14:08:36

0

WIMO正在開展WiFi到桌面的支持工作,可能會完成。無論哪種方式都值得一看代碼。

home

source