Почему мой поток зависает, если я пытаюсь получить ObjectInputStream вместо InputStream в Java?

это про эту строчку

VoIP_InputStream = new ObjectInputStream(VoIP_socket.getInputStream());

Если я выполняю его в режиме отладки, я вижу, что поток, который его запускает, не продолжается. Он просто зависает на этой строке и выходит из отладчика, не переходя к следующей строке.

если вместо этого я попробую эту строку (без ObjectInputStream)

VoIP_InputStream = VoIP_socket.getInputStream();

Если нормально проходит. Почему он зависает, если я использую ObjectInputStream и как это исправить?


person Hydrophilia    schedule 12.10.2014    source источник


Ответы (1)


Потому что, как сказано в Javadoc, конструктор ObjectInputStream читает заголовок потока, написанный конструктором ObjectOutputStream на пире. Вам нужно построить ObjectOutputStream перед ObjectInputStream, предпочтительно с обоих концов.

person user207421    schedule 12.10.2014
comment
ок спасибо за эту информацию - person Hydrophilia; 13.10.2014