Время от времени при попытке запустить мой сервер приложений Java на моем компьютере WinXP он не запускается с ошибкой «Адрес уже используется» при попытке прослушивания порта. Обычное решение для меня - запустить tcpview (из sysinternals), посмотреть, что использует этот порт, убить этот процесс и повторить попытку. Работает 99% времени.
Оставшийся 1%, однако, не работает. Сервер приложений настаивает на том, что порт (например, порт 1099, но это не имеет значения) используется, и tcpview столь же сильно настаивает на том, что это не так.
Сервер приложений просто делегирует создание серверного сокета окнам, поэтому я не вижу, чтобы это была проблема, специфичная для Java, хотя я рад, что меня исправили.
Что дает? Не упускает ли tcpview какой-то угловой случай? Есть ли лучший инструмент, который помог бы мне диагностировать такие ситуации?
Кроме того, вы можете попробовать
netstat -ano
чтобы найти ProcessID и немного сузить его, предполагая, что ваш порт 8191
netstat -ano | find "8191"
Странно. Чтобы точно определить проблему, вы можете попробовать
netstat -an
Здесь также должны быть перечислены все используемые порты. Если он не согласен, проблема может быть в tcpview. В противном случае вам придется искать в другом месте.