Я делаю многопоточное сервер-клиентское приложение, где каждый клиент имеет свой собственный выделенный поток.Сервер и клиент обмениваются данными в определенном формате сообщений, который заканчивается на «END \ r \ n».Для этого я подумал об использовании класса Scanner и его метода useDellimiter.Вот код
private static String getMessage(InputStream input) throws IOException {
Scanner n = new Scanner(input);
n.useDelimiter("END\r\n");
while(!n.hasNext()) {}
return n.next();
}
Проблема, с которой я столкнулся, заключается в том, что n.next () не блокируется, если сообщение недоступно, а выдает исключение.Я исправил это с помощью базового опроса с помощью цикла while, он работает, но это кажется плохой практикой.Могу ли я сделать блок n.next ()?Есть ли лучший способ достичь того, чего я хочу, без использования класса Scanner?