java.net.BindException en Java con ejemplos

La java.net.BindException es una excepción que se lanza cuando se produce un error en el enlace cuando una aplicación intenta enlazar un socket a una dirección y un puerto locales. Principalmente, esto puede ocurrir debido a 2 razones: el puerto ya está en uso (debido a otra aplicación) o la dirección solicitada simplemente no se puede asignar a esta aplicación. BindException hereda de la clase SocketException , lo que muestra que hay un error relacionado con la creación o el acceso al socket.  

Constructores

Los siguientes constructores están disponibles para BindException:

  • BindException(): crea una instancia simple de la clase BindException sin un mensaje detallado
  • BindException(String msg): crea una instancia de la clase BindException con el mensaje especificado como el motivo por el que se produjo el error de vinculación.

Resumen del método 

  1. Métodos heredados de la clase java.lang.Throwable:  
    addSuppressed , fillInStackTrace , getCause , getLocalizedMessage , getMessage , getStackTrace , getSuppressed , initCause , printStackTrace , setStackTrace , toString .
     
  2. Métodos heredados de la clase java.lang.Object:  
    clone , equals , finalize , getClass , hashCode , notificar, notificar a todos , esperar .

JERARQUÍA DE java.net.BindException

Ejemplo:

En el siguiente ejemplo, hemos creado una clase Ex_BindException para demostrar 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();
    }
}

Producción:

En el código anterior, primero creamos una instancia de la clase ServerSocket utilizando el puerto especificado. Esa instancia está enlazada con éxito. Sin embargo, cuando se crea otra instancia con el mismo puerto, se produce una BindException porque el puerto ya está vinculado al otro Socket. Aquí, simplemente podemos usar otro puerto arbitrario (que no esté en uso) para que el segundo socket elimine esta excepción.

Publicación traducida automáticamente

Artículo escrito por ashutoshrathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *