У меня был код, который работал нормально почти два года без изменений, который подключается к серверу, который я создал.Внезапно я больше не могу заставить 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()
, и он получает исключение тайм-аута.
- Сервер работает и прослушивает новые подключения
- Я могу пропинговать сервер со всех своихустройства, включая мое устройство Android
- Я могу подключиться к серверу с помощью telnet с моего устройства Android, передавая тот же точный адрес и порт, что и в моем коде выше
- При использовании telnetсо своего устройства Android я также вижу, что сервер получает соединение и сообщает, что установлено новое соединение
- Я перезагрузил как свое устройство Android, так и серверное устройство
- Брандмауэры полностью отключенына сервере
- Я не пробовал перезагружать роутер / модем.Я хочу найти источник проблемы, если это вообще возможно.
Я даже запустил сервер с подключенной Visual Studio, чтобы увидеть, получает ли он какое-либо соединение перед его удалением, но он никогда не получаетчто-нибудь.
Есть идеи?
[ОБНОВЛЕНИЕ]
Я написал тестовое приложение на своем компьютере, чтобы попытаться подключиться, используя тот же самый код, который янаписал выше.Он не подключился с использованием указанного IP-адреса.Но я изменил IP на локальный IP сервера, и он подключился.
При этом я попытался подключиться к своему Android без Wi-Fi, и он все еще не работал.
Так что же помешает этомуот подключения с использованием фактического IP-адреса вместо локального?