我一直在尝试通过TCP套接字连接两个Android设备(2.1)。 代码的重要部分:
服务器: ServerSocket serverSocket = new ServerSocket(SERVERPORT);
客户端: 套接字套接字=新套接字(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()更改套接字实现。
在向Android实施MSRP协议的过程中,这个问题至关重要
谁能给我一些建议?
答案 0 :(得分:1)