У меня очень странная проблема.У меня есть 2 приложения, одно из которых - мое доказательство концепции, другое - мое настоящее приложение.Оба являются приложениями Xamarin.Forms, поддерживающими Android, iOS и UWP.
Оба эти приложения используют TcpClient для подключения к моему IP и порту # на другом компьютере.Но вот что происходит:
- Мое приложение для проверки работоспособности работает нормально, оно может отправлять и получать данные на / с этого IP / порта #
- Я также использую приложение TerminalEmulatorна Android и Ping на iOS, которые позволяют вам пинговать IP-адрес.Оба устройства могут пропинговать IP-адрес, то есть IP-адрес виден для устройств
- Но, если я пытаюсь подключиться из своего реального приложения на тех же устройствах, я получаю исключение "Нет маршрута к хосту"
Почему мое POC-приложение может подключаться, я могу пропинговать хост со своего устройства Android / IOS, но не могу подключиться из своего реального приложения и получить эту ошибку:
Вот так я пытаюсь подключиться
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(...);