#java #sockets #serversocket
Вопрос:
Я пытаюсь сделать небольшой чат по локальной сети на Java, у меня есть поток, который просматривает список со всеми клиентами и пытается прочитать следующую строку с 0
заданным временем ожидания.
while(true){
for(ChatClient chater : Server.connections){
try{
chater.sock.setSoTimeout(0);
message = SocketUtils.recvMsg(chater.sock);
System.out.println(chater.getName() " has sent a message!");
message = chater.getName() ": " message;
senderId = chater.getId();
Server.broadcastMsg(message, senderId);
}
catch(SocketTimeoutException e1){
continue;
}
catch(IOException e){
//
}
}
}
Я почти уверен, что ошибка между ошибками заключается в том, что неблокирующие сокеты реализованы неправильно.
Каков был бы наилучший способ получать сообщения от пользователей, не блокируя цикл?
Спасибо, что нашли время ответить на этот вопрос!
Комментарии:
1. Просто использовать другую нить?
2. @dan1st Этот фрагмент кода выполняется в другом потоке, но по какой-то причине сокеты ничего не получают.