我一直試圖通過TCP套接字連接兩個Android設備(2.1)。 代碼的重要組成部分:通過TCP套接字連接兩個Android設備
服務器: ServerSocket serverSocket = new ServerSocket(SERVERPORT);
Client: Socket socket = new Socket(serverAddr,SERVERPORT);
奇怪的是,如果客戶端是仿真器,我可以使其工作,但如果在真實設備上運行它們,則相同的代碼會失敗。 在客戶端上的失敗是:
java.net.SocketException: No route to host
at org.apache.harmony.luni.platform.OSNetworkSystem.connectSocketImpl(Native
Method)
at org.apache.harmony.luni.platform.OSNetworkSystem.connect(OSNetworkSystem.
java:114)
at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:
245)
at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:
220)
at java.net.Socket.startupSocket(Socket.java:780)
at java.net.Socket.(Socket.java:314)
我用WIFI和移動網嘗試過,他們是在同一個子網兩次,INTERNET權限已定,那麼服務器通過其實際192.168 .. IP地址。
我打算用setCustomSocketImplFactory()更改套接字實現。
這個問題在實現MSRP協議到Android的過程中至關重要。
任何人都可以給我一些建議嗎?
你說的真實IP的意思是,如果程序在兩部手機上運行? – 2010-08-03 07:19:30
我只是想說,問題不在於我使用10.0.2.15 IP作爲真實設備 – Diepie 2010-08-04 12:31:23