Клиент передает серверу две даты, а сервер возвращает количество лет между датами [закрыт]

141
12 ноября 2019, 11:30

Как правильно передать дату, не возвращает количество лет

Код сервера

 `package s;
    import java.io.*;
    import java.net.*;
    import java.text.SimpleDateFormat;
    import java.time.*;
    import java.time.format.DateTimeFormatter;
    import java.util.Date;
public class S {

    public static void main(String[] args)throws IOException {
            System.out.println("Welcome to Server side");
        BufferedReader in = null;
        PrintWriter out = null;
        ServerSocket servers = null;
        Socket fromclient = null;
        try {
            servers = new ServerSocket(4444);
        } catch (IOException e) {
            System.out.println("Couldn't listen to port");
            System.exit(-1);
        }
        try {
            System.out.print("Waiting for a client...");
            fromclient = servers.accept();
            System.out.println("Client connected");
        } catch (IOException e) {
            System.out.println("Can't accept");
            System.exit(-1);
        }
        in = new BufferedReader(new InputStreamReader(fromclient.getInputStream()));
        out = new PrintWriter(fromclient.getOutputStream(), true);
        String input, input1;
        System.out.println("Waiting for messages");
                while ((input = in.readLine()) != null) {
                    input1 = in.readLine();
            String[] words = null;
            if (input.equalsIgnoreCase("exit"))
                break;
            else if (input.trim().length() == 0) {
                words = new String[0];
            } else {
                words = input.trim().split("[ ,.!?:;]+");
                               DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDate fuser = LocalDate.parse(in.readLine(), formatter);
LocalDate fuser1 = LocalDate.parse(in.readLine(), formatter);
Period period = Period.between(fuser, fuser1);
                System.out.println("Получено: " + input);
                                System.out.println("Получено: " + input1);
                           out.println("Server :ЛЕТ: " +period.getYears());
            }
            System.out.println(input.length());
        }

        out.close();
        in.close();
        fromclient.close();
        servers.close();
    }
}`

Код клиента

 package c;
import java.io.*;
import java.io.*;
import java.net.*;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class C {

    public static void main(String[] args) throws IOException {
        System.out.print("Welcome to Client side\nInput IP to connect:");
        Scanner sc = new Scanner(System.in);
        String ip = sc.nextLine();// если сервер и клиент на одном пк, то вводить localhost или 127.0.0.1
        Socket fromserver = null;
        fromserver = new Socket(ip, 4444);
        System.out.println("Connected to " + ip);
        BufferedReader in = new BufferedReader(new InputStreamReader(fromserver.getInputStream()));
        PrintWriter out = new PrintWriter(fromserver.getOutputStream(), true);
        BufferedReader inu = new BufferedReader(new InputStreamReader(System.in));
        String fuser, fuser1, fserver;
        while ((fuser = inu.readLine()) != null) {
            out.println(fuser);
                       fuser1 = inu.readLine();
            out.println(fuser1);
                        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
                       fserver = in.readLine();
            System.out.println(fserver);
            if (fuser.equalsIgnoreCase("exit"))
                break;
        }
        out.close();
        in.close();
        inu.close();
        fromserver.close();
        sc.close();
    }
}
Answer 1

Сервер ожидает три строки: не пустую и не равную "exit" и две строки с датами. Клиент присылает только две строки с датами.

READ ALSO
Вопрос по Java и Github

Вопрос по Java и Github

Я даже не знаю как правильно задать вопрос, сижу и перескакиваю с проблемы на проблему (точнее это не проблема, а мое незнание и отсутствие...

114
Удалить из массива число по индексу, через консоль Java

Удалить из массива число по индексу, через консоль Java

Занести в массив информацию о стоимости L – видов товараОпределить, сколько видов товара имеют стоимость, меньшую, чем средняя стоимость...

135
Ошибка при вызове команды select из базы h2

Ошибка при вызове команды select из базы h2

Всем привет, нужна помощь

125
WebView и CSS переменные

WebView и CSS переменные

Столкнулся с проблемой что WebView игнорирует CSS переменные

160