@Auratos

Xamarin Forms. Android. Как правильно организовать доступ к сокет-серверу?

Добрый день. Веду разработку в Xamarin Forms под Android. Пытаюсь поднять сокет-сервер на смартфоне. В качестве клиента выступает консольное приложение.
Адрес сервера(смартфона) я получаю следующим образом:

IPAddress[] adresses = Dns.GetHostAddresses(Dns.GetHostName());
if (adresses != null && adresses[0] != null)
{
      adr = adresses[0].ToString();
}
strendpoint = adr + ":2780";
IPEndPoint localEndPoint = CreateIPEndPoint(strendpoint);
_server = new TcpListenerServer(localEndPoint);


Затем захожу на 2ip.ru со смартфона, узнаю свой IP и вбиваю его в клиент:

const int port = 2780;
const string address = "85.26.233.137";
client = new TcpClient(address, port);
NetworkStream stream = client.GetStream();


Так вот. Клиент таки образом не может достучаться до сервера. Если подключаю смартфон к домашнему Wi-Fi (т.е. и сервер, и клиент теперь находятся в одной сети), и адрес у него становиться что-то вроде 192.168.0.105, то клиент по такому адресу может подключиться.
Заметил, что адрес, что выдает 2ip.ru, когда я работаю через оператора (Megafon), отличается от адреса, что указан в параметрах телефона в разделе "Об устройстве" - там он такой 100.99.225.236. Но по этому адресу клиент тоже не может достучаться. Подскажите, пожалуйста, как правильно организовать данную систему?
  • Вопрос задан
  • 159 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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