2012-12-21 17 views
3

我試圖使用XAML和C#爲LAN(Windows應用商店應用) 開發消息聊天應用程序。所以,首先我怎麼知道,基於IP地址的LAN 中的可用人員?如何使用C#在局域網中查找可用IP地址

任何示例代碼或想法來實現這一目標?

+1

您正在查找[組播DNS](http://en.wikipedia.org/wiki/Multicast_DNS),i.o.w. [的Bonjour](http://en.wikipedia.org/wiki/Bonjour_(軟件))。在[Bonjour SDK](https://developer.apple.com/bonjour)中有Bonjour的C#綁定。 – dtb

+0

搜索了相關的文章和樣本..我對這項技術不熟悉.. – Lokesh

+1

由於這是一個Windows應用商店應用程序,這就排除使用像Bonjour這樣的軟件,對吧? [本文](http://www.codeproject.com/Articles/16113/Retreiving-a-list-of-network-computer-names-using)使用Win32 API,因此也不可用。 – 0xFE

回答

0

使用的WinRT :(

但是你有2個解決方案,你不能靠多播:

  1. 使用IP廣播:發送您的Bonjour消息255.255.255.255
  2. 添加服務器節點

請注意,解決方案1僅適用於局域網,可能會受到路由器和網關配置的限制

+0

謝謝Kronos ..有沒有任何文章或文件對我更有幫助。 – Lokesh

+0

@Lokesh,如果你可以安裝一個服務器(選項2),爲什麼不安裝一個jabber服務器,只是用許多可用的API創建一個jabber客戶端。我對http://code.google.com/p/jabber-net/wiki/GettingStarted – kenny

+0

有很好的體驗。發現此http://social.msdn.microsoft.com/Forums/en-US/winappswithnativecode/thread/ 75dfa774-54a0-43a4-b489-ddc753d00ca4這是在C++中,但給你一個良好的軌道。只需向任何給定端口上的地址255.255.255.255的「主機」請求流,並寫出您的問候消息。所有設備都應該監聽該端口並回答問候。在發送我的問候消息以獲得更快的發現服務時,我會通過設備發送已知的可用客戶端列表。總結一下,每臺設備都會發現並告訴其他人他們已經知道,所以您更傾向於P2P方案,然後是客戶端 - 服務器。 – Kronos

相關問題