asp.net core 2.0 - файл Docker для решения нескольких проектов

Основная проблема заключается в том, что вы используете новый ObjectOutputStream для записи в существующую ObjectInputStream, которую вы уже использовали ранее ObjectOutputStream для записи. Эти потоки имеют заголовки, которые записываются и считываются соответствующими конструкторами, поэтому, если вы создаете еще один ObjectOutputStream, вы напишете новый заголовок, который начинается с - угадайте, что? - 0xAC,, а существующий ObjectInputStream не ожидает другого заголовка в этой точке, так что barfs.

В потоке форумов Java, указанном @trashgod, я должен был оставить часть «заново» для каждого объекта на обоих концах: это просто расточительно. Используйте один OOS и OIS для жизни сокета и не используйте какие-либо другие потоки в сокете.

Если вы хотите забыть, что вы написали, используйте ObjectOutputStream.reset().

И не используйте другие потоки или Readers или Writers в том же сокете. API-интерфейсы потоков объектов могут обрабатывать все примитивные типы данных Java и все классы Serializable.

16
задан dee zg 3 November 2017 в 19:56
поделиться