📜  Java的.net.BindException在Java中与实例

📅  最后修改于: 2022-05-13 01:55:36.364000             🧑  作者: Mango

Java的.net.BindException在Java中与实例

Java.net.BindException是一个异常,当应用程序尝试将套接字绑定到本地地址和端口时,绑定导致错误时抛出的异常。大多数情况下,这可能是由于 2 个原因造成的,端口已在使用中(由于另一个应用程序)或请求的地址无法分配给该应用程序。 BindException继承自SocketException类,因此表明存在与套接字创建或访问相关的错误。

构造函数

以下构造函数可用于 BindException:

  • BindException():创建 BindException 类的一个简单实例,没有详细消息
  • BindException(String msg):使用指定的消息作为发生绑定错误的原因创建 BindException 类的实例。

方法总结

  1. 从类Java.lang.Throwable 继承的方法:
    addSuppressed、fillInStackTrace、getCause、getLocalizedMessage、getMessage、getStackTrace、getSuppressed、initCause、printStackTrace、setStackTrace、toString。
  2. 从类Java.lang.Object 继承的方法:
    克隆、等于、完成、getClass、hashCode、通知、notifyAll、等待。

Java.net.BindException 的层次结构

例子:



在下面的示例中,我们创建了一个类 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 ,因为该端口已绑定到另一个 Socket。在这里,我们可以简单地为第二个套接字使用另一个任意端口(未使用)来消除此异常。