Невозможно назначить запрошенный адрес: JVM_Bind - PullRequest
43 голосов
/ 23 января 2012

Когда я пытаюсь настроить сервер сокетов, у меня появляется сообщение об ошибке:

Exception in thread "main" java.net.BindException: Cannot assign requested address: JVM_Bind
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.<init>(ServerSocket.java:194)
    at java.net.ServerSocket.<init>(ServerSocket.java:106)
    at socketyserver.SocketyServer.main(SocketyServer.java:12)
Java Result: 1

Весь код максимально прост:

public static void main(String[] args) throws UnknownHostException, IOException
{
    ServerSocket serverSocket;
    serverSocket = new ServerSocket(9999);
}

Я на 100% уверен, что мои порты перенаправлены, брандмауэр Windows отключен. Ничто не блокирует порт 9999. Что еще может пойти не так?

Ответы [ 13 ]

0 голосов
/ 07 апреля 2015

java.net.BindException: Невозможно назначить запрошенный адрес

Согласно документации BindException, это в основном:

Сигналы о том, что во время произошла ошибкапопытка привязать сокет к локальному адресу и порту.Обычно порт используется или запрошенный локальный адрес не может быть назначен.

Поэтому попробуйте следующую команду:

sudo lsof -i:8983

, чтобы дважды проверить, использует ли какое-либо приложениетот же порт и уничтожьте его.

Если это не так, убедитесь, что ваш IP-адрес, к которому вы пытаетесь привязаться, правильный (он правильно назначен вашему сетевому интерфейсу).

0 голосов
/ 23 января 2012

Как говорится в сообщении об ошибке, он не может связываться, что обычно означает, что он используется другим процессом.Из командной строки запустите:

netstat -a -n -o

Запросить вывод для используемого порта 9999 в левом столбце.

Для получения дополнительной информации: http://www.zdnetasia.com/see-what-process-is-using-a-tcp-port-62047950.htm

0 голосов
/ 23 января 2012

Порт занят другим процессом. Возможно, неопределенный старый запуск вашей программы. Убедитесь, что ваша программа завершилась корректно или убейте ее.

...