Неблокирующий сервер с java.io
Все знают, что Java IOблокирование, а Java это NIOнеблокирующая, В IO вам придется использовать поток для каждого шаблона клиента, в NIO вы можете использовать один поток для всех клиентов.
Теперь мой вопрос: можно ли сделатьнеблокирующая дизайн с использованиемтолько Java IO API. (не НИО)
Я думал о такой схеме (очевидно, очень упрощенной);
List li;
for (Socket s : li) {
InputStream in = s.getInputStream();
byte[] data = in.available();
in.read(data);
// processData(data); (decoding packets, encoding outgoing packets
}
Также обратите внимание, что клиент всегда будет готов к чтению данных.
Что вы думаете об этом? Подойдет ли это для сервера, который должен содержать хотя бы несколько сотен клиентов без серьезных проблем с производительностью?