Я использую это на своем компьютере. Я использую 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 уже используется другой программой. В Windows вы можете использовать «netstat -ano», чтобы получить список сокетов, включая идентификатор процесса. Вам нужно проверить порт 8888 и какой процесс использует этот порт.
получите TCPView от docs.microsoft.com/en-us/sysinternals/downloads/tcpview и посмотрите, что использует 8888. Затем вам нужно закрыть это приложение или изменить порт, который вы используете.
Вполне возможно, что 8888 используется другим экземпляром вашей программы, которая все еще работает.
Спасибо raviiii1 и Конраду. Проблема решена




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