Задать вопрос
@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 не происходит возврат в цикл. Как можно тогда сделать иначе? Нужно, чтобы в файл построчно писался отчет открыт ли порт (соединение установлено) или нет. Может сделать это не через исключения, но я такого способа не нашел пока.
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Adler_lug
@Adler_lug
file.Close();

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

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

Похожие вопросы