Назад | Перейти на главную страницу

Невозможно выполнить привязку к порту, хотя tcpview сообщает, что он не используется

Время от времени при попытке запустить мой сервер приложений Java на моем компьютере WinXP он не запускается с ошибкой «Адрес уже используется» при попытке прослушивания порта. Обычное решение для меня - запустить tcpview (из sysinternals), посмотреть, что использует этот порт, убить этот процесс и повторить попытку. Работает 99% времени.

Оставшийся 1%, однако, не работает. Сервер приложений настаивает на том, что порт (например, порт 1099, но это не имеет значения) используется, и tcpview столь же сильно настаивает на том, что это не так.

Сервер приложений просто делегирует создание серверного сокета окнам, поэтому я не вижу, чтобы это была проблема, специфичная для Java, хотя я рад, что меня исправили.

Что дает? Не упускает ли tcpview какой-то угловой случай? Есть ли лучший инструмент, который помог бы мне диагностировать такие ситуации?

Кроме того, вы можете попробовать

netstat -ano

чтобы найти ProcessID и немного сузить его, предполагая, что ваш порт 8191

netstat -ano | find "8191"

Странно. Чтобы точно определить проблему, вы можете попробовать

netstat -an

Здесь также должны быть перечислены все используемые порты. Если он не согласен, проблема может быть в tcpview. В противном случае вам придется искать в другом месте.