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());
}
}
}