2015-03-11 4 views
-1

Мне нужно подключить устройство android к моей программе java через соединение сокета. Устройство работает как сервер. Проблема в том, что при попытке подключения сокетов мне нужно указать IP-адрес и номер порта сервера.
Есть ли что-то вроде статического IP-адреса для Android-устройства для подключения? Если нет, есть ли альтернативный способ установить соединение сокета между устройством и моей программой?Как подключить Android-устройство к Java-программе через сокеты?

+1

Это можно в некоторой степени предостережениями и опасениями, как правило, только на локальном Wi-Fi или через соединение модема или отладки USB. Небольшой поиск здесь найдет много предыдущего покрытия. –

ответ

0

Поскольку устройство должно иметь подключение к той же сети, что и компьютер, оно должно иметь настроенный IP-адрес. Поэтому вы должны использовать этот. Используемый порт определяется серверным приложением, запущенным на вашем устройстве.

Если у вас есть проблемы, которые так или иначе нормальное сетевое подключение не возможно, но у вас есть ADB соединения, вы можете направить местные горшки на устройство, и пусть ваш сервер слушать: http://developer.android.com/tools/help/adb.html#forwardports

Над мобильной связи (GPRS, EDGE, UMTS, HSDPA) не будет практически осуществимого способа установить соединение где-то на ваше устройство (вместо этого вы должны сделать это по-другому, отменив всю директиву клиент-сервер) в причине использования Обмен IP. В этом случае у вас есть проблема, о которой я не знаю, возможно ли вообще, не говоря уже о том, как вы могли бы это достичь.

В противном случае вы просто должны настроить статический IP-адрес для вашего устройства при подключении к локальной сети, или вы должны оценить фактический IP вашего устройства каждый большую часть времени, при его использовании с этой конфигурацией:

+0

Спасибо за предоставленную мгновенную помощь. :-) Я подключил свое устройство к компьютеру через usb. Теперь проблема в том, что я получаю ip для устройства только тогда, когда я подключаюсь к Интернету, который, я думаю, является динамическим ip. Таким образом, единственное решение, которое я хотел бы как-то прочитать в динамическом ip через мой код и использовать для подключения сокетов? – Vinay

+0

Что вы подразумеваете под «internet» вашей WLAN/LAN или подключением к мобильным соединениям данных (GPRS, EDGE, UMTS, HSDPA)? В любом случае посмотрите на обновленный ответ;) –

+0

Через Интернет я имел в виду мобильные соединения для передачи данных. Но похоже, что это не сработает. Я попробовал hardcoding статический ip моего устройства Android и попытался установить соединение сокета. Но соединение не удалось. Похоже, это может быть невозможно. Тем временем мне удалось подключиться к эмулятору, указав localhost ip (127.0.0.1). Спасибо за помощь, оказанную Марвином :-) – Vinay