.NET TcpClient Connect не выбрасывает исключение

-4

TcpClient.Net позволяет мне проверить, можно ли установить соединение, поэтому дайте мне знать, открыт ли удаленный порт.

Проверьте этот код:

TcpClient tcpCLient = new TcpClient();
try
{
tcpCLient.Connect("www.google.com", 80);
Console.WriteLine("Yes");
Console.ReadLine();

}
catch (Exception)
{

Console.WriteLine("No");
Console.ReadLine();
throw;
}

Я тестировал порт Tcp 80 на www.google.com, и поскольку он открыт, я вижу в консоли сообщение "Да". Теперь я попытаюсь закрыть TCP-порт 70 www.google.com, который закрыт.

 TcpClient tcpCLient = new TcpClient();
try
{
tcpCLient.Connect("www.google.com", 70);
Console.WriteLine("Yes");
Console.ReadLine();

}
catch (Exception)
{

Console.WriteLine("No");
Console.ReadLine();
throw;
}

Я ожидал исключения, поэтому я смотрю "Нет" в консоли. Почему ничего не происходит? Спасибо!!

Обновление: консоль продолжает работать даже через несколько минут. enter image description here

спросил(а) 2013-01-08T04:36:00+04:00 7 лет, 10 месяцев назад
0
83

@pm100 дайте мне ответ в коммюнике.

"Причина почти наверняка связана с брандмауэром Google, они отбрасывают пакеты для неожиданных портов - это похоже на ошибку tranmission, поэтому вы получаете повторные попытки. Попробуйте тот же тест на машине без брандмауэра (например, localhost), и он будет немедленно сбой из-за хоста отклонить запрос на закрытый порт "

Через несколько минут вы увидите "Нет".

ответил(а) 2013-01-08T04:50:00+04:00 7 лет, 10 месяцев назад
42

Короче: почему вы throw исключение, как только поймали его?

Это может быть причиной висячего консольного приложения, поскольку он ждет тайм-аута. Кроме того, как уже упоминалось, это может быть межсетевой экран в удаленном адресе, поскольку он может отменить ваши вызовы. Дайте мне знать, если вы получите некоторые особые исключения.


Кроме того, мы надеемся, что ваш код обрабатывает исключения сокетов, поскольку это является общим исключением, когда клиент пытается подключиться. Вот связанный пост - С# SocketException не попадает

ответил(а) 2013-01-08T04:45:00+04:00 7 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема