В основном то, о чем говорится в вопросе. У меня есть программа, которая использует графический интерфейс для выполнения различных задач. Одна из этих задач — открыть и прослушать сокет, который создается и вызывается в отдельном классе. Однако как только я вызываю этот метод для подключения к сокету, он замораживает основной графический интерфейс, что означает, что я больше не могу с ним ничего сделать, включая остановку выполнения этого сокета. Я создаю и слушаю свой сокет как таковой:
Код: Выделить всё
try(Socket socket = new Socket(raspPiIP, 30003)) {
while (running) {
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String line = reader.readLine();
String[] data = line.split(",");
if (data[1].equals("3") || data[1].equals("4")) {
textFileCreator(data[4]);
textFileAdder(data);
unieuqInfo(data[4]);
}
}
socket.close();
} catch (Exception e) {
}
Графический интерфейс теоретически может перевести запуск в состояние false, когда я захочу, но поскольку он зависает, я не могу остановить работу сокета, пока не закрою программу
Подробнее здесь:
https://stackoverflow.com/questions/787 ... om-running