Я пытался соединить два устройства Android (2.1) через TCP-сокеты.Важная часть кода:
Сервер: ServerSocket serverSocket = новый ServerSocket (SERVERPORT);
Клиент: Сокет Socket = новый 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 и с мобильной сетью, они оба раза были в одной подсети, разрешение ИНТЕРНЕТ дано, сервер обращается через свою реальную 192.168 ..IP.
Я планирую изменить реализацию сокета с помощью setCustomSocketImplFactory ().
Проблема имеет решающее значение в процессе реализации протокола MSRP для Android.
Может кто-нибудь дать мне какой-нибудь совет?