2015-05-09 72 views
8

我一直在尋找寫一個簡單的桌面應用程序,相應的移動應用程序,該情況是:網絡服務發現在Windows Phone

  1. 我在我的筆記本電腦上運行的桌面應用程序
  2. 我運行移動在我的Lumia的應用程序(在同一WiFi網絡)
  3. 的手機應用程序以某種方式找到並連接到桌面應用程序(我不希望有手動查找並鍵入IP)
  4. 兩個現在可以溝通

像這樣一個非常基本的應用程序將發送簡單的文本消息之間的兩個。
我想一個示例應用程序會是這樣的一個「遙控器」您的手機上的PC,可以在市場here上找到。
我從查看UDP多播開始,花了一天的時間試圖讓它工作。這個想法應該是兩個應用程序加入相同的多播組,加入電話時向該組發送消息,PC將其選中並響應其IP,然後使電話與桌面應用程序建立TCP連接。聽起來像是一個有效的解決方案,對吧?那麼它好像不管我試過了,這種情況會發生:

  1. 方案:移動應用程序連接到相同的WiFi PC應用程序的實際手機上運行:消息被髮送,但永遠不會到來。
  2. 方案:在同一臺PC機PC應用上的仿真器上運行的移動應用:信息發送和到達。

這裏是一個包含代碼的帖子,當我嘗試使用sockets-for-pcl
這是我嘗試使用什麼是已經在.NET:
PC - 只發送消息:

UdpClient udp = new UdpClient(port); 
IPAddress group_ip = IPAddress.Parse("139.100.100.100"); 
IPEndPoint client_ipep = new IPEndPoint(group_ip, 3344); 
byte[] b = System.Text.Encoding.UTF8.GetBytes(txtEntry.Text); 
udp.Send(b, b.Length, client_ipep); 

PHONE - 僅接收:

HostName hostName = new HostName("139.100.100.100"); 
DatagramSocket udp = new DatagramSocket(); 
udp.MessageReceived += (sender, args) => 
{ 
    uint length = args.GetDataReader().ReadUInt32(); 
    string text = args.GetDataReader().ReadString(length); 
}; 
await udp.BindServiceNameAsync("3344"); 
udp.JoinMulticastGroup(hostName); 

然而,一天後,我放棄了由於文檔是稀缺和調試需要我得到一些網絡掃描工具...

當我在互聯網上搜索了一些圖書館的網絡服務發現,我發現一些Android docs但沒有Windows Phone 8.1。所以我想我的問題是:是否有類似的Windows Phone的?或者,如果您發現代碼有任何問題,我需要更改哪些內容才能進行通信?謝謝。

回答

1

不要忘記設置有效的端口號和接收組播數據異步

This sample可以幫助你

+0

我遠離家鄉,但現在我會在稍後檢查它今天。我以前沒有看到這篇文章,我希望這會有所幫助。謝謝:) –

+0

U R歡迎。希望能幫助到你 – BzH