привет всем, что я хочу сделать java сокет разговора между сервером и клиентом, он работает с первым сообщением, а затем останавливается разговор, в моем случае я хочу отправить привет сообщение от клиента и получить привет сообщение с сервера то сервер должен также послать другой массаж «ввести номер, чтобы проверить» и ждать вводаjava socket programming разговор
мой клиентский код:
public class ClientSide {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
ClientSide clientSideInstance = new ClientSide();
clientSideInstance.run();
}
/**
* @throws Exception
*/
public void run() throws Exception{
Socket soc = new Socket("localhost",4321);
PrintStream printStream = new PrintStream(soc.getOutputStream());
printStream.println("hi");
InputStreamReader Inputreader = new InputStreamReader(soc.getInputStream());
BufferedReader bufferedReader = new BufferedReader(Inputreader);
String receivedMsg = bufferedReader.readLine();
System.out.println(receivedMsg);
}
}
мой код сервер:
public class ServerSide {
private PrintStream printStream;
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
ServerSide serverSideInstance = new ServerSide();
serverSideInstance.run();
}
/**
* @throws Exception
*/
public void run() throws Exception{
ServerSocket socket = new ServerSocket(4321);
Socket soc = socket.accept();
InputStreamReader Inputreader = new InputStreamReader(soc.getInputStream());
BufferedReader bufferedReader = new BufferedReader(Inputreader);
String receivedMsg = bufferedReader.readLine();
System.out.println(receivedMsg);
// parsing client massage
if(receivedMsg.trim().equalsIgnoreCase("hi")){
printStream = new PrintStream(soc.getOutputStream());
printStream.println("hi");
printStream.println("enter number to check ");
InputStreamReader InputreaderForPrimeNumber = new InputStreamReader(soc.getInputStream());
BufferedReader bufferedReaderForPrimeNumber = new BufferedReader(InputreaderForPrimeNumber);
String number = bufferedReaderForPrimeNumber.readLine();
if(isPrime(Integer.parseInt(number))){
printStream.println("yes - it is Prime number :)");
}else{
printStream.println("No - it is not a Prime number :(");
}
}
}
private boolean isPrime(int n) {
for(int i=2;i<n;i++) {
if(n%i==0)
return false;
}
return true;
}
}
Может ли кто-нибудь помочь?