Запуск в java.net.BindException: адрес уже используется (сбой привязки) в приложении сокет сервер-клиент - PullRequest
0 голосов
/ 06 мая 2019

Я работаю в java.net.BindException: адрес уже используется (сбой привязки) в приложении сокет сервер-клиент

Я пытаюсь узнать о сокетах Java, используя учебник Youtube в качестве справочного материала. Мой код, кажется, соответствует всему в видео (кроме имен переменных), но при попытке запустить сервер, а затем клиентские сокеты, я получаю:

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 Ответ

3 голосов
/ 06 мая 2019

Возможно, ваша ранее запущенная программа все еще работает. Проверьте запущенные процессы Java. Убейте предыдущий и попробуйте снова.

Если это не поможет, попробуйте перезагрузить компьютер. Если после этого проблема не устраняется, то на этом порту уже запущена какая-то служба и запускается с ОС. В этом случае вы можете изменить номер порта в вашем приложении или отключить эту службу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...