C # TcpClient Connect () получает тайм-аут по неизвестной причине - PullRequest
0 голосов
/ 05 октября 2018

У меня был код, который работал нормально почти два года без изменений, который подключается к серверу, который я создал.Внезапно я больше не могу заставить TcpClient подключиться.

Клиент, который подключается, работает на моем устройстве Android (Android версии 6.0).

TcpClient tcpClient = new TcpClient();
bool success = tcpClient.ConnectAsync(ServerIP, Port).Wait(TimeSpan.FromSeconds(5));
if (success)
    stream = tcpClient.GetStream();

Эта задача всегда возвращает false,Я попытался использовать функцию блокировки tcpClient.Connect(), и он получает исключение тайм-аута.

  1. Сервер работает и прослушивает новые подключения
  2. Я могу пропинговать сервер со всех своихустройства, включая мое устройство Android
  3. Я могу подключиться к серверу с помощью telnet с моего устройства Android, передавая тот же точный адрес и порт, что и в моем коде выше
  4. При использовании telnetсо своего устройства Android я также вижу, что сервер получает соединение и сообщает, что установлено новое соединение
  5. Я перезагрузил как свое устройство Android, так и серверное устройство
  6. Брандмауэры полностью отключенына сервере
  7. Я не пробовал перезагружать роутер / модем.Я хочу найти источник проблемы, если это вообще возможно.

Я даже запустил сервер с подключенной Visual Studio, чтобы увидеть, получает ли он какое-либо соединение перед его удалением, но он никогда не получаетчто-нибудь.

Есть идеи?

[ОБНОВЛЕНИЕ]

Я написал тестовое приложение на своем компьютере, чтобы попытаться подключиться, используя тот же самый код, который янаписал выше.Он не подключился с использованием указанного IP-адреса.Но я изменил IP на локальный IP сервера, и он подключился.

При этом я попытался подключиться к своему Android без Wi-Fi, и он все еще не работал.

Так что же помешает этомуот подключения с использованием фактического IP-адреса вместо локального?

1 Ответ

0 голосов
/ 07 октября 2018

[ОТВЕТ]

Я попытался сбросить настройки маршрутизатора / модема, но это не сработало.Итак, я изменил локальный IP на сервере на что-то другое (использовал 192.168.0.2 , я изменил его на 192.168.0.4 ), и он работал.

Я дважды проверил, чтобы убедиться, что в моей сети нет конфликтов IP-адресов, и все выглядело нормально, поэтому я не уверен, почему 192.168.0.2 вызывал сбой соединения.

Все хорошоТеперь.

...