簡體   English   中英

Android套接字到Java Server的套接字連接

[英]Android socket to Java ServerSocket Connection

我在將模擬的Android Activity連接到計算機上運行的常規Java程序時遇到困難。 這是我應采取的一些預防措施,應該可以解決這些問題。

  • 我嘗試連接到10.0.2.2,即模擬器所在的localhost的ipaddress
  • 我產生了一個與UI線程分開的新線程來進行連接。 (我沒有做過花哨的工作線程,我只是創建了一個新線程並說.start())

因此,基本上,您的系統由一個普通的Java程序組成,該程序聲明一個ServerSocket,然后等待.accept()方法。 我啟動了該程序,希望它在那里等待。 然后,我切換到具有按鈕onClick方法的Activity類。 該方法調用新線程的.start()方法。 在我的活動的.run方法中,我聲明一個新的Socket並嘗試連接到本地主機。

你知道我應該知道的其他事情嗎? 主要問題是什么也沒發生。 我在本地主機Java程序中的.accept方法調用之后放置了一個斷點,但從未到達。

請參閱此線程將仿真器網絡連接到計算機的網絡。 希望這可以幫助

如何將Android模擬器連接到互聯網

該帖子的最高答案是

我認為某些答案可能已經解決了這個問題,無論它是多么傾斜,但這都是對我有用的。

假設您在無線網絡上並且安裝了LAN卡時發生問題,那么問題是模擬器試圖從該LAN卡獲取其DNS設置。 通過該LAN進行連接時不是問題,但如果使用無線連接則完全沒有用。 當我在筆記本電腦上時,我注意到了這一點。

那么,如何解決? 簡單:禁用您的LAN卡。 真。 只需轉到您的網絡連接,找到您的LAN卡,右鍵單擊它,然后選擇禁用。 現在嘗試您的模擬器。 如果你像我,那突然...起作用了! -artifex

我發現對答案的評論很有用。

實際上,仿真器將適配器的優先級設置為最高,因此切換適配器的優先級(將無線設置為最高)也應該起作用,並且不需要完全禁用LAN適配器。 不過感謝您的回答,讓我頭疼– Anzeo 2011年4月6日在14:47

在您的情況下,Java程序在同一台計算機上。 所以我想說,Java程序Socket可能綁定到其中一個網絡接口的IP,而Android正在嘗試連接到另一個。 可以肯定的是,只需禁用除一個接口以外的所有網絡接口,然后運行程序。 發布您可以調整網絡接口的優先級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM