Я пытаюсь читать с сервера SSLSocket, мне нужно, чтобы клиент был открыт 24/7, Заметьте, я только делаю клиента, Сервер уже настроен, Я пытаюсь читать данные и отправлять данныес сервера. Как бы то ни было, когда я пытаюсь прочитать данные, он блокирует мой текущий поток, и я не могу ничего сделать после этого, так как цикл никогда не заканчивается, и если я делаю цикл, который завершает, программа возвращается.Я хочу, чтобы он всегда был открытым и продолжал получать входящий запрос, а затем отправлять запрос обратно в соответствии с тем, что я получаю, это то, что у меня сейчас есть.
private SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
private SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(host, port);
private BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(sslsocket.getOutputStream()));
private InputStream is = sslsocket.getInputStream();
это глобальные переменные, которые я определил, и этоВот как я записываю данные на сервер
private void write_to_server(String date) throws IOException {
writer.write(date);
writer.flush();
}
и, наконец, именно так я получаю ответ, и именно здесь у меня возникает проблема.
public String getResponse() throws IOException {
byte[] buffer = new byte[16384];
String a = "";
for (int b; ((b = is.read(buffer)) > 0); ) {
a = new String(buffer, 0, b, StandardCharsets.UTF_8);
Log(a);
}
return a;
}
Цикл никогда не заканчивается, вызываязастрявший поток, и даже если цикл завершится, программа просто вернется после этого, что приведет к завершению программы.Мне нужно знать, как настроить его так, чтобы он получал данные круглосуточно, а затем отправлял данные обратно после получения ответа.