Ошибка TcpClient приложения Xamarin.Forms при подключении с исключением «Нет маршрута к хосту» - PullRequest
0 голосов
/ 19 февраля 2019

У меня очень странная проблема.У меня есть 2 приложения, одно из которых - мое доказательство концепции, другое - мое настоящее приложение.Оба являются приложениями Xamarin.Forms, поддерживающими Android, iOS и UWP.

Оба эти приложения используют TcpClient для подключения к моему IP и порту # на другом компьютере.Но вот что происходит:

  1. Мое приложение для проверки работоспособности работает нормально, оно может отправлять и получать данные на / с этого IP / порта #
  2. Я также использую приложение TerminalEmulatorна Android и Ping на iOS, которые позволяют вам пинговать IP-адрес.Оба устройства могут пропинговать IP-адрес, то есть IP-адрес виден для устройств
  3. Но, если я пытаюсь подключиться из своего реального приложения на тех же устройствах, я получаю исключение "Нет маршрута к хосту"

Почему мое POC-приложение может подключаться, я могу пропинговать хост со своего устройства Android / IOS, но не могу подключиться из своего реального приложения и получить эту ошибку:

enter image description here

Вот так я пытаюсь подключиться

public override async Task<IList<RoomGuestModel>> GetRoomGuestAsync(string roomNumber)
{
    using (TcpClient client = new TcpClient())
    {
        try
        {
            client.Connect(_tcpConnection.Address, _tcpConnection.Port);
        } 
        catch(Exception ex)
        {

        }
        ...
        ...
        // use NetworkStream to write message and read message
        await myStream.WriteAsync(...);
        ...
        await myStream.ReadAsync(...);

1 Ответ

0 голосов
/ 19 февраля 2019

Проблема заключалась в том, что я использовал неправильный IP-адрес, после ввода правильного адреса я смог подключиться

...