@Auratos

Xamarin Forms. Как извне подключиться по IP к серверу во время отладки?

Добрый день. Товарищи, у меня возникла проблема – не могу извне подключиться к серверу во время отладки, запущенному внутри эмулятора на Xamarin Forms. Именно во время отладки! Т.е. у меня есть клиент – отдельное устройство с SIM-картой, которое через мобильную сеть по IP и порту подключается к серверу. Так вот, когда я компилирую проект и запускаю приложение (сервер) на телефоне, то клиент спокойно ко мне подключается. А вот внутрь эмулятора во время отладки не хочет.
Сеть корпоративная. IP адрес корпоративного сервера - 94.198.1.105. Клиент (устройство) стучится на этот адрес на порт 2781. А сервер уже перенаправляется данные на IP моей рабочей машины - 192.168.1.90 и порт 2780.

Кратенько опишу способы, что я уже попробовал.
1) у меня есть простенький самописный клиент – консольное приложение, которое также стучится по IP и порту. Сервер запускаю в отладке с параметрами 127.0.0.1:2780, клиент запускаю на той же машине, он стучится на 127.0.0.1:2780. Пробрасываю данные с порта 2780 реальной машины на порт 2780 эмулятора следующей командой
adb – s forward tcp:2780 tcp:2780
Запускаю сервер и клиент – клиент подключается к серверу в отладке.

2) компилирую проект. Запускаю сервер на телефоне, узнаю IP телефона средствами C# - IP 192.168.1.90. Создаю точку доступа 192.168.1.90:2780. Клиент (устройство) стучится на 94.198.1.105:2781 и подключается к моему мобильному серверу.

3) клиент (устройство) стучится на 94.198.1.105:2781. Запускаю сервер в отладке в эмуляторе, получаю его IP средствами C# - IP 192.168.232.2. Создаю точку доступа - 192.168.232.2:2780. Сервер запущен. Пробрасываю порт
adb – s forward tcp:2780 tcp:2780
Клиент не видит сервер. При этом в самом эмуляторе проверяю внешний IP через браузер на 2ip.ru – там показывает, что IP 94.198.1.105, т.е. IP нашего корпоративного сервера.

4) повторяю все действия из пункта 3). Но пытаюсь еще пробросить данные с 192.168.1.90:2780 (локального IP моей рабочей машины) на 192.168.232.2:2780 (локальный IP эмулятора) следующим способом через командную строку:
netsh interface portproxy
add v4tov4 listenport=2780 listenaddress=192.168.1.90 connectport=2780 connectaddress=192.168.232.2
show all

Клиент (устройство) куда-то подключается время от времени, но это не отладчик. Сбрасываю настройки netsh (пишу в командной строке “reset”), и клиент больше не может подключиться.

Подскажите, пожалуйста, если ли еще какие-нибудь способы?
Вот приблизительная схема, как организуется доступ
5d6030c1729b7484735060.jpeg
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы