2012-05-18 185 views
0

我想用我的智能手機通過WiFi連接到我的筆記本電腦和其他智能手機。 我寫了一個應用程序(android),但只能找到wifi網絡,沒有設備。 沒有人有任何想法如何找到智能手機和筆記本電腦?如何將手機連接到我的筆記本電腦?

+0

您是否試圖將它們放入網絡中。它是用於文件共享和其他事情嗎? –

+0

我想你可能會將TCP與藍牙等東西混淆。 – npinti

+0

這取決於。你的意思是這樣的:https://play.google.com/store/apps/details?id = net.szym.barnacle(使用這個程序,Android手機創建和通告一個特別的WiFi網絡,其他設備可以通過它連接)? – Piskvor

回答

1

從你的問題我認爲你的智能手機是基於Android。我還假設,當你說你「找不到設備」時,你的意思是你的筆記本電腦創建的WLAN網絡。

我似乎回想起在Android文檔中Android設備無法連接(甚至檢測)ad-hoc無線網絡的地方。 Ad-hoc網絡通常是由非專用網絡設備(例如Windows計算機)託管的網絡。

您可能能夠使用某些實用程序軟件來使用計算機創建基礎設施類型的無線網絡(而不是特設)。除此之外,你幾乎侷限於使用由網絡路由器託管的實際基礎架構無線網絡,並將所需的設備連接到其中,這實質上是通常的(W)局域網使用場景。

+0

我可以用tcp ip連接嗎? – natalia

+0

就是這樣。將設備(筆記本電腦和智能手機)連接到同一個WLAN時,它們通常可以**通過TCP/IP連接直接與另一個通話。然而,設備到設備通信可能受到託管無線網絡的設備的某些設置的限制。您還應該確保您的筆記本電腦的防火牆軟件不會阻止入站網絡通信。 – Kallja

0

好問題!與藍牙和其他一些協議不同,WiFi不允許您發現網絡中的其他設備。要在WiFi網絡上查找其他設備,您需要在更高層的TCP堆棧中運行應用程序。然後,您可以向所有設備發送TCP或UDP數據包,如果您收到回覆,幾乎可以確定其他設備在網絡中。這是一個相當脆弱的過程,許多障礙(如防火牆)可能會阻止發現過程。這就是爲什麼您需要等待Windows才能發現網絡打印機或網絡計算機的原因。

要在Java/Android(或任何其他平臺)中實現這樣的事情,最簡單的方法是編寫運行後臺線程並聽取broadcast messages的應用程序。當您想要啓動一個發現過程時(在發現者一側),您發送一條廣播消息並等待答覆。另一方面(discover-ee方面),如果您收到廣播消息,您只需回覆帶有所需信息(例如設備名稱)的消息。在收到回覆消息(發現者)後,您可以輕鬆找出網絡中的其他設備。

或者,您可以使用TCP套接字進行探測。在這種情況下,由於不支持廣播消息,因此您需要嘗試連接到網絡中的每個可能的IP地址(通常至少255個IP地址),這會導致進程速度變慢。

This可能會有所幫助。

+0

你會做什麼?我是網絡編程新手。請您推薦任何教程或鏈接。 – natalia

+0

這很大程度上取決於您試圖達到的目標。如果是文件共享,那麼在Android平臺上有應用程序可以開箱即用。例如Astro可以用來訪問Windows共享。如果您需要更多自定義實現,我建議您在Oracle.com上通過[Java網絡教程路徑](http://docs.oracle.com/javase/tutorial/networking/index.html)來獲取您開始。 – Kallja

+0

我想從傳感器節點讀取數據(通過WiFi),所以我想像筆記本電腦和智能手機。 – natalia

相關問題