@Nirmanakaya61

Почему не работает код?

Подскажите, пожалуйста, почему не работает код?

using System;
using System.Net.Sockets;

namespace ConsoleClient
{
    class Program
    {
        const string ip = "87.250.250.242";
        static void Main(string[] args)
        {


            int closedPort = 0;
            string path = @"c:\report.csv";
            System.IO.StreamWriter file = new System.IO.StreamWriter(path);

            try
            {

                TcpClient client = new TcpClient();

                for (int port = 1; port <= 65535; port++)
                {

                    closedPort = port;
                    client.Connect(ip, port);
                    Console.WriteLine("Open");
                    file.WriteLine($"{DateTime.Now}, {ip}, {port}, Open");
                    client.Close();
                }

            }

            catch (SocketException e)
            {
                Console.WriteLine("Close");
                file.WriteLine($"{DateTime.Now}, {ip}, {closedPort}, Close");

            }
        }
    }
}


Учебное задание, сканер портов, который пишет отчет в файл. Файл создается, но пустой, в него ничего не записывается. При попытке вывода на консоль пишет только "Closed" и все. Способов работы с файлами больше одного, но я выбрал тот, который посоветовал человек, который дал задание. Такое ощущение, что после ветки catch не происходит возврат в цикл. Как можно тогда сделать иначе? Нужно, чтобы в файл построчно писался отчет открыт ли порт (соединение установлено) или нет. Может сделать это не через исключения, но я такого способа не нашел пока.
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
Adler_lug
@Adler_lug
file.Close();

Для вставки кода есть же специальный тег, что бы это было хотя бы читаемо.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы