Как исправить ошибку привязки с помощью Java Networking и MAMP

Сторона клиента

Я использую это на своем компьютере. Я использую MAMP, он установлен, и все выглядит нормально, но.

package com.data.jdbc;

import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class ClientDemo {

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

        Socket s  = new Socket("127.0.0.1", 8888);

        Scanner is = new Scanner(s.getInputStream());  //receive data from server

        System.out.println("Enter the string");
        Scanner scan = new Scanner(System.in);
        String name = scan.next();
        PrintStream p = new PrintStream(s.getOutputStream());
        p.println(name);
        String temp=is.next();


        System.out.println(temp);

        // TODO Auto-generated method stub

    }

}

Сторона сервера

Я использую это на своем компьютере, MAMP установлен, и все выглядит хорошо, но.

   package com.data.jdbc;


import java.io.IOException;
import java.io.PrintStream;
import java.net.*;
import java.util.Scanner;


public class ServerDemo {

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



        // TODO Auto-generated method stub

        ServerSocket sc1 = new ServerSocket(8888);
        Socket s11 = sc1.accept();
        Scanner scan1 = new Scanner(s11.getInputStream());
        String name1 = scan1.next();
        String temp1= name1 + "Poudel";

        PrintStream p1 = new PrintStream(s11.getOutputStream());

        p1.println(temp1);

    }
}

Ошибка

Я получаю ошибку привязки, как показано ниже:

Exception in thread "main" java.net.BindException: Address already in use (Bind failed)
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
    at java.net.ServerSocket.bind(ServerSocket.java:375)
    at java.net.ServerSocket.<init>(ServerSocket.java:237)
    at java.net.ServerSocket.<init>(ServerSocket.java:128)
    at com.data.jdbc.ServerDemo.main(ServerDemo.java:18)

Что может быть причиной вышеуказанной проблемы?

Порт 8888 уже используется другим процессом. Используйте другой порт.

raviiii1 21.02.2019 17:24

Порт сервера 8888 уже используется другой программой. В Windows вы можете использовать «netstat -ano», чтобы получить список сокетов, включая идентификатор процесса. Вам нужно проверить порт 8888 и какой процесс использует этот порт.

Konrad 21.02.2019 17:25

получите TCPView от docs.microsoft.com/en-us/sysinternals/downloads/tcpview и посмотрите, что использует 8888. Затем вам нужно закрыть это приложение или изменить порт, который вы используете.

Shawn 21.02.2019 17:26

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

user3458 21.02.2019 17:27

Спасибо raviiii1 и Конраду. Проблема решена

Samir Poudel 21.02.2019 17:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
5
24
0

Другие вопросы по теме