2016-03-07 1 views
0

Я действительно не понимаю, почему objectOutputStream должен быть инициализирован до инициализации objectInputStream в классе клиента.Инициализация потока клиент-сервер Java

Если я не делаю так:

ObjectOutputStream clientOutputStream = new ObjectOutputStream(socketConnection.getOutputStream()); ObjectInputStream clientInputStream = new ObjectInputStream(socketConnection.getInputStream());

Я побегу в петлю.

Есть ли кто-нибудь, кто может объяснить это мне?

ответ

1

Вы не столкнетесь с циклом. Вы столкнетесь с тупиком.

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