Многократный обмен данными с клиентом на TCP-сервере - PullRequest
0 голосов
/ 21 июня 2019

Я делаю Java-клиент и сервер, соединяющийся через tcp с ssl.Для того, чтобы обмениваться информацией с клиент-сервером tcp.Я подумал о двух вариантах:

  1. Создать новый сокет для каждой передачи данных от клиента.Получите информацию и завершите работу потока, в котором работает этот сокет.

  2. Создайте новый сокет при подключении клиента, а затем оставьте входной и выходной потоки открытыми для совместного использования данных во время сеанса пользователя.открыл.

Я думаю, что вариант 2 является лучшим.Но я не знаю, как «приостановить» потоки или получить от них данные после первого обмена.В коде у вас есть метод, который запускает потоки для каждого нового клиента.У кого-нибудь есть идеи о том, как решить этот вопрос?Спасибо

//SERVER SIDE CODE TO MANAGE THE STREAMS

public Threaded(SSLSocket s) {
        socket = s;
        System.out.println("New Thread started for "+s.getInetAddress());
    }

    @Override
    public void run() {
        try {
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                            socket.getInputStream()));
            String inputLine;

            while ((inputLine = in.readLine()) != null) {
                 out.println(inputLine);
                 System.out.println("server get: "+inputLine);
            }
            out.close();
            in.close();
            socket.close();
        } catch(Exception e) {
            System.out.println("Thread err: "+e.getMessage());
        }
        System.out.println("Closing thread....");
        return;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...