Добрый день. Товарищи, у меня возникла проблема – не могу извне подключиться к серверу во время отладки, запущенному внутри эмулятора на 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”), и клиент больше не может подключиться.
Подскажите, пожалуйста, если ли еще какие-нибудь способы?
Вот приблизительная схема, как организуется доступ