Я делаю Java-клиент и сервер, соединяющийся через tcp с ssl.Для того, чтобы обмениваться информацией с клиент-сервером tcp.Я подумал о двух вариантах:
Создать новый сокет для каждой передачи данных от клиента.Получите информацию и завершите работу потока, в котором работает этот сокет.
Создайте новый сокет при подключении клиента, а затем оставьте входной и выходной потоки открытыми для совместного использования данных во время сеанса пользователя.открыл.
Я думаю, что вариант 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;
}