У меня есть скрипт, который использует IO :: Socket :: INET для установки TCP-сервера
my $socket = new IO::Socket::INET (
LocalHost => '0.0.0.0',
LocalPort => '10010',
Proto => 'tcp',
Listen => 5,
);
Если мой скрипт вылетает или останавливается пользователем до того, как он достигнет закрытия сокета сервера,затем в следующий раз при запуске скрипта он не сможет привязаться к порту, так как все еще есть процесс, прослушивающий порт to
За исключением результатов netstat -anobp tcp
TCP 0.0.0.0:10010 0.0.0.0:0 LISTENING 22628
[System]
Да, яЯ использую Windows.
Запрос на уничтожение задачи:
taskkill /f /PID 22628
завершается неудачно с:
ERROR: The process "22628" not found.
Единственный способ обойти это - перезагрузиться или увеличитьпорт прослушивания.Поскольку я не являюсь настоящим разработчиком программного обеспечения и могу в первый раз написать отличный код, который не дает сбоя, я часто сталкиваюсь с этой проблемой.
Также стоит отметить, что это происходит только после подключения клиента ксервер.
Есть ли способ предотвратить это (без прослушивания сирот) или способ избавиться от сироты?