Отчего умирают сокеты?

Подсоединены с серверу 10 клиентов, открыто 10 сокетов в 10 процессах.Процессы читают байты (0..255) из ИнпутСтримов. Есть данные - читают, нет данных - ждут. Вдруг иногда у всех 10 выскакивает EOFException. Все умирают.

Никак не могу понять, откуда этот конец файла (-1) берется одновременно у всех. Его там вообще быть не должно, ибо если нет данных, то чтение блокируется (согласно теории и практики) до их поступления.