C# Помогите с try и catch

Я имею не сложный код по сканировании портов. Ты типа сначало выбираешь с какого по какой порт вести сканирование и оно сканирует на наличие открытых портов... ВОПРОС. КАКОГО ФИГА КАК ТОЛЬКО ОНО НАХОДИТ ОТКРЫТЫЙ ПОРТ, ОНО ОСТАНАВЛИВАЕТ СКАНИРОВАНИЕ?? ПОМОГИТЕ! ПОЖАЛУЙСТА. Вот код:

control = int.Parse(fromTextBox4.Text);
etiket:

try
{
control = control + 1;

tcp.Connect(textBox3.Text, control);
if (tcp.Connected)
{
statist2.Text += ("Port Opened: ", textBox3.Text, control.ToString());
goto etiket;

}
else
{

}
}
catch
{
if (tcp.Connected == false)
{
statist2.Text += ("Port Closed: ", textBox3.Text, control.ToString());
goto etiket;
}
else
{

}
}

Ответы (2 шт):

Автор решения: Егор Ясиновский

Для начала используй цикл, а второе сам посмотри на условие. Если порт закрыт проверка идет даче, иначе пустое блок else.

→ Ссылка
Автор решения: Жека Диулин

Жесть конечно! Сказать, что Ваш код режет глаз - ничего не сказать.

Вот небольшая модификация. Для 99.99% goto легко заменяется циклами и прочими конструкциями. Учите язык.

control = int.Parse(fromTextBox4.Text);

for (int i = control; i < /*Тут твой последний порт +1*/; i++) {
  try {
    tcp.Connect(textBox3.Text, i);
    if (tcp.Connected) {
      statist2.Text += ("Port Opened: ", textBox3.Text, i.ToString());
    }
  }
  catch
  {
    if (tcp.Connected == false) {
      statist2.Text += ("Port Closed: ", textBox3.Text, i.ToString());
    }
  }
}
→ Ссылка