Сетевой поток в изоляции не имеет автоматического разделения сообщений - это всего лишь байты.Таким образом, необходимо разделить вручную; для записи удобнее всего использовать известный разделитель между записями.Самое удобное для чтения - это префикс каждого сообщения с количеством байтов для чтения в следующем сообщении.
Вам необходимо использовать эту информацию для чтения целых сообщений, в противном случае чтение сходит с ума.В этом случае я подозреваю, что вы прочитали оба сообщения полностью при первом получении, и теперь больше нет данных - отсюда и блокировка (она должна блокироваться до тех пор, пока не будет прочитан хотя бы один байт илизакрыто).
Кроме того, обратите внимание, что если вы читаете, это не значит, что у вас есть полное сообщение - просто хотя бы один байт.Обычно вам нужно зацикливаться, чтобы получить сообщение.