Ниже у меня есть пример некоторого серверного кода, который я использовал для приложения некоторое время назад, затем я объясню вам, что здесь происходит:
Сначала вам нужно создать свой ServerSocket, чтобы принимать запросы клиентов (как вы уже знаете):
ServerSocket serverSocket = new ServerSocket(1002);
while(true) {
Затем вам нужно войти в цикл while, чтобы получать запросы в течение всего времени работы серверной программы
Socket clientSocket = serverSocket.accept();
System.out.println("Connection made to: " + clientSocket);
BufferedReader br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String messageString = "";
String line;
System.out.println("Enter while loop to retrieve client message...");
while((line = br.readLine()) != null) {
String clientRequestLine = line;
if(clientRequestLine.contains("check return user credentials")) {
String userNamePassWord = clientRequestLine.replace("check return user credentials", "");
userNamePassWord = userNamePassWord.trim();
String[] userNamePassWordSplitter = userNamePassWord.split(" ");
String userName = userNamePassWordSplitter[0];
String passWord = userNamePassWordSplitter[1];
System.out.println("Username: " + userName + "\nPassword: " + passWord);
boolean isValidUserNamePassWord = ReturnPatientCredentials.checkUserNamePassWord(userName, passWord);
if(isValidUserNamePassWord) {
System.out.println("valid");
out.println("valid");
}
else {
System.out.println("invalid");
out.println("invalid");
}
}
Выше необходимо запустить BufferedReader для сохранения InputStream (данных) из клиентского сокета. Вам также необходимо создать PrintWriter, чтобы вы могли отправлять данные в OutputStream и передавать ваш clientSocket в качестве аргумента для OutputStream. Далее вы создадите переменные, чтобы получить сообщение и «строку» даты от клиента и войти в цикл while. Затем вы можете сохранить строку в переменной и прочитать данные или все, что вам нужно сделать. Мы используем наш PrintWriter (out) для отправки данных обратно методом println (), а затем мы можем выйти из цикла при необходимости.