2011-07-16 68 views
2

迄今爲止我見過的有關Android與TCP連接的所有文檔,示例和問題都介於Android設備和計算機之間。由於無線連接不可靠,是否有可能通過WiFi在Android設備之間建立客戶端 - 服務器TCP連接,如果可以,如何實現?Android到Android TCP連接

編輯:我想我應該詳細說明我的情況。 我的Droid不響應ping或接受來自任何東西的傳入TCP請求,除非我首先將Droid作爲客戶端,將我的筆記本電腦作爲服務器。在初始連接建立之後,我可以從我的筆記本電腦ping通,或者使Droid成爲服務器,並將筆記本電腦作爲客戶端。我不能做的是讓一個Droid服務器和另一個客戶端,我總是得到一個「沒有路由到主機」的錯誤。

感覺就像有阻塞傳入連接的東西,除非設備啓動連接到其他設備,即使這樣設備將接受的唯一請求就是使用此設備。我怎樣才能讓我的Droid成爲一個服務器,它接受來自本地Intranet上任何設備的所有傳入TCP請求?

+1

我不知道答案,但我可以告訴你,我有相同的問題,在我的三星Galaxy S II。這可能是某種安全措施,試圖避免病毒在公共Wifi網絡上的不同設備之間傳播?某些ISP可能設計了防火牆來防範這種威脅,但是如果本地網絡上的設備能夠直接與對方通話,那麼這些防火牆就會提供任何幫助......? –

回答

0

您應該可以。只要像使用計算機/設備連接那樣做,除了在設備上運行客戶端和服務器代碼。

+0

在Droid上運行服務器不起作用,因爲設備不接受傳入的連接,除非它先前已將TCP連接作爲另一設備的客戶端啓動。在這種情況下,當設備用作服務器時,它將接受的唯一入站連接來自前一會話的設備。這是我讓Droid設備充當服務器的唯一方式,即使這樣它也不接受來自本地網絡上任何其他設備的連接。 – kurifu

+0

您是否可能會將接入點/客戶端的WiFi概念與tcp服務器/客戶端概念混淆?也可能是因爲使用手機作爲tcp客戶端會觸發無線網絡進入完全連接並處於活動狀態 - 否則可能會超時。也許你可以讓服務器ping或者每隔幾分鐘查詢一次接入點或者一個DNS服務器,或者它應該是活躍的。 –

+0

也許操作系統或其他應用阻止傳入連接?我也想知道,因爲我有一個應用程序,我想添加多人遊戲。 –

0

互聯網的一個很好的事情是,互聯網並不關心你是否建立了兩臺個人電腦,一臺個人電腦和一部電話或兩部電話之間的連接。我會看看Socket文檔,這應該足以讓你滾動。

+0

我有一個套接字實現工作,問題是不連接互聯網上的設備,問題是本地Intranet上的連接設備,即使在清單中設置了權限,它總是會產生「無路由到主機」錯誤 – kurifu

0

這當然有可能。唯一的問題是搞清楚IP地址。我不希望手機擁有固定的IP地址......但是,如果Web中某個地方存在固定的「登錄」服務器,則兩個電話都知道該IP,然後他們可以通過該服務器進行握手,然後繼續進行對等-to等。

0

re;唯一的問題是搞清楚IP地址。我不希望電話擁有固定IP。

試試這個; 使用手機上的網絡瀏覽器登錄該網站:它應該爲您提供IP地址。

http://whatismyipaddress.com/