我一直试图通过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