TCP 소켓을 통해 두 개의 Android 장치 (2.1)를 연결하려고했습니다. 코드의 핵심 부분 :두 개의 안드로이드 장치를 TCP 소켓을 통해 연결합니다.
서버 : ServerSocket serverSocket = 새 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 및 모바일 그물 시도가 동일한 서브넷에 두 번했다, 인터넷 권한이 주어 서버는 실제 192.168 .. IP를 통해 해결됩니다 .
setCustomSocketImplFactory()를 사용하여 소켓 구현을 변경하려고합니다.
문제는 안드로이드에 MSRP 프로토콜을 구현하는 과정에서 중요합니다.
누군가 나에게 조언을 해줄 수 있습니까?
프로그램이 두 개의 휴대 전화에서 실행중인 경우 실제 IP 무엇을 의미합니까? –
난 그냥 문제가 내가 실제 장치에 대한 10.0.2.15 IP를 사용하지 않는다고 말하려고했습니다. – Diepie