подключение двух устройств Android через сокеты TCP - PullRequest
1 голос
/ 09 июля 2010

Я пытался соединить два устройства 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.
Может кто-нибудь дать мне какой-нибудь совет?

1 Ответ

1 голос
/ 09 декабря 2010

Очень немногие мобильные телефоны имеют общедоступные IP-адреса. Большинство за NAT.

Вы можете рассмотреть возможность использования C2DM вместо:

http://code.google.com/android/c2dm/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...