首页 > 解决方案 > 遇到 java.net.BindException:服务器-客户端套接字应用程序上的地址已在使用中(绑定失败)

问题描述

我是一个非常初学者的 Java 开发人员(准确地说是开发人员),并且我正在尝试使用 Youtube 教程作为参考来了解 Java 套接字。我的代码似乎与视频中的所有内容都匹配(变量名称除外),但是,当尝试运行服务器和客户端套接字时,我得到:

Exception in thread "main" java.net.BindException: Address already in use (Bind failed)

我什至尝试打印出local port只是为了确保我连接到正确的可用端口,但是没有任何效果。有没有我可以查看的文档来解决这个问题?或任何指导?

这是我到目前为止的代码:

服务器.java

    public class serverSocket {
     public static void main(String args[]) throws IOException{

      String message, serverResponse;

      ServerSocket serverSocket =  new ServerSocket(56789);
      System.out.print(serverSocket.getLocalPort());
      Socket acceptClientRequestSocket = serverSocket.accept();
      Scanner serverScanner = new Scanner(acceptClientRequestSocket.getInputStream());
      message = serverScanner.next();
       System.out.println(message);
      serverResponse = message.toUpperCase();

      PrintStream newMessage = new PrintStream(acceptClientRequestSocket.getOutputStream());
      newMessage.println(serverResponse);    

     }
    }

客户端.java


   public class clientSocket {

    public static void main(String args[]) throws UnknownHostException, IOException {

        String message,outputMessage;
        Scanner clientInput =  new Scanner(System.in);
        Socket clientSocket = new Socket("localhost",56789);
        Scanner incomingStream = new Scanner(clientSocket.getInputStream());
        System.out.println("Enter a message");
        message = clientInput.next();
        PrintStream printClientStream=  new PrintStream(clientSocket.getOutputStream());
        printClientStream.println(message);
        outputMessage = incomingStream.next();
        System.out.println(outputMessage);

    }
    }

标签: javasockets

解决方案


推荐阅读