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