java.net.BindException в Java с примерами
Исключение java.net.BindException возникает при возникновении ошибки привязки, когда приложение пытается привязать сокет к локальному адресу и порту. В основном это может происходить по двум причинам: либо порт уже используется (из-за другого приложения), либо запрошенный адрес просто не может быть назначен этому приложению. BindException наследуется от класса SocketException , таким образом показывая, что существует ошибка, связанная с созданием или доступом к сокету.
Конструкторы
Для BindException доступны следующие конструкторы:
- BindException(): создает простой экземпляр класса BindException без подробного сообщения.
- BindException(String msg): создает экземпляр класса BindException с указанным сообщением в качестве причины возникновения ошибки привязки.
Резюме метода
- Методы, унаследованные от класса java.lang.Throwable:
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, setStackTrace, toString. - Методы, унаследованные от класса java.lang.Object:
клонировать, равнять, финализировать, получить класс, хэш-код, уведомить, уведомить всех, подождать.
Пример:
В приведенном ниже примере мы создали класс Ex_BindException для демонстрации BindException:
Java
// java.net.BindException in Java with Examples import java.io.*; import java.net.*; public class Ex_BindException { // Creating a variable PORT1 with arbitrary port value private final static int PORT1 = 8000 ; public static void main(String[] args) throws IOException { // Creating instance of the ServerSocket class // and binding it to the arbitrary port ServerSocket socket1 = new ServerSocket(PORT1); // Creating another instance of the ServerSocket // class and binding it to the same arbitrary // port,thus it gives a BindException. ServerSocket socket2 = new ServerSocket(PORT1); socket1.close(); socket2.close(); } } |
Выход:
В приведенном выше коде мы сначала создали экземпляр класса ServerSocket, используя указанный порт. Этот экземпляр успешно привязан. Однако при создании другого экземпляра с использованием того же порта возникает исключение BindException , поскольку порт уже привязан к другому сокету. Здесь мы можем просто использовать другой произвольный порт (который не используется) для второго сокета, чтобы избавиться от этого исключения.