2015-10-08 4 views
0

Я использую приложение для Android, которое передает данные акселерометра в реальном времени на указанный IP-адрес сервера. Я написал «сервер» в C, работающий в Linux, который работает в VMware.Получить данные в реальном времени с телефона

Я подключен к горячей точке, созданной Windows7 (хост-компьютером), работающим на рабочей станции VMware.

Итак, мой вопрос заключается в том, как подключить виртуальную машину к той же сети, что и точка доступа, чтобы я мог получить телефон и «серверную» программу в одной сети и передать данные серверной программе?

+0

Можете ли вы выполнить ping хост-машину с устройства? Можете ли вы ударить службу на виртуальной машине с главной машины? –

ответ

0

Я использую VirtualBox, но я предполагаю, что настройки очень похожи в VMWare Workstation.

Вы, вероятно, нужно сделать один или оба из этих вещей:

1) Port Forwarding. Если ваше приложение попадает на порт 80 (или любой другой порт), вам нужно сообщить VMWare, что любые обращения, поступающие на хост-машину в этом порту, перенаправляются на виртуальную машину. Конечно, ваша виртуальная машина должна будет слушать этот порт. Я бы предложил использовать высокий номер порта (более 1024), чтобы свести к минимуму конфликты и избежать раздражающих проблем с root/admin, используя низкий номер порта.

2) Надеюсь, это вас доставит. В противном случае вам может потребоваться изменить настройки виртуального адаптера на виртуальной машине. Режим NAT - первая попытка. Если нет, есть и другие режимы (мосты, внутренние, только для хоста), с которыми вы можете возиться. (Не уверен, что VMWare использует разные имена)

Это, вероятно, все, что вам нужно для топологии, которую вы описываете, - Android-устройство, подключенное непосредственно к той же подсети, что и главная машина. Если нет, возможно, ваша точка доступа направляет весь клиентский трафик на шлюз (т. Е. В Интернет), не допуская прямого доступа к localhost. Если да, возможно, для этого есть настройки. Если нет, ngrok - ваш новый лучший друг.

Это СУПЕР легко и позволяет туннелировать трафик из любого места в Интернете на определенный сервис, работающий на вашем компьютере. Это обойдется некоторыми из вышеперечисленных вопросов.

Если вы хотите перенести устройство Android в другую сеть (например, сотовую сеть), то ngrok - это абсолютно путь, особенно для разработки и прототипирования. Это позволяет избежать проблем с DNS, маршрутизацией, брандмауэрами и т. Д.

Смежные вопросы