Да, это возможно. Вам не нужно быть текущим процессом, владеющим сокетом, чтобы закрыть его. Подумайте на мгновение, что удаленный компьютер, сетевая карта, сетевой кабель и ваша ОС могут привести к закрытию сокета.
Учтите также, что программное обеспечение Fiddler и Desktop VPN может вставлять себя в сетевой стек и отображать весь ваш трафик или перенаправлять весь трафик.
Таким образом, все, что вам действительно нужно, это либо для Windows предоставить API, который позволяет это напрямую, либо для того, чтобы кто-то написал программу, которая работает как VPN или Fiddler, и дает вам возможность закрыть сокеты, которые проходят через нее.
Существует по крайней мере одна программа ( CurrPorts ), которая делает именно это, и я использовал ее сегодня с целью закрытия определенных сокетов в процессе, который был запущен до запуска CurrPorts. Для этого, конечно, вы должны запустить его от имени администратора.
Обратите внимание, что, вероятно, нелегко заставить программу не прослушивать порт (ну, это возможно, но эта возможность называется брандмауэром ...), но я не думаю, что это было спросил здесь. Я считаю, что вопрос «как выборочно закрыть одно активное соединение (сокет) с портом, который слушает моя программа?». Формулировка вопроса немного неправильна, потому что указан номер порта для нежелательного входящего клиентского соединения, и он упоминался как «порт», но довольно ясно, что это была ссылка на этот один сокет, а не на прослушивающий порт.