遇到java.net.BindException:服务器客户端套接字应用程序上已在使用的地址(绑定失败)

时间:2019-05-05 22:13:36

标签: java sockets exception

我正在遇到java.net.BindException:服务器-客户端套接字应用上的地址已在使用中(绑定失败)

我正在尝试使用Youtube教程作为参考来学习Java套接字。我的代码似乎与视频中的所有内容都匹配(变量名除外),但是,当尝试运行服务器然后运行客户端套接字时,我得到了:

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

我甚至尝试打印出本地端口,只是为了确保我连接到正确的可用端口,但没有任何效果。我可以参考任何文档来解决此问题吗?或任何指导?

Server.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);    

 }
}

Client.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);

}
}

我可以参考任何文档来解决此问题吗?或任何指导?

1 个答案:

答案 0 :(得分:3)

您可能以前运行过的程序仍在运行。检查正在运行的Java进程。杀死前一个,然后重试。

如果这无济于事,请尝试重新启动计算机。如果此后问题仍然存在,则说明该端口上已经在运行某些服务,并且正在从操作系统启动。在这种情况下,您可以更改应用程序中的端口号或禁用该服务。