Это больше похоже на комментарий, чем на хороший ответ: (Я бы лучше добавил комментарий к одному из ответов выше, но у меня нет представителя)
Вопрос, как я его прочитал, таков:«Могу ли я закрыть поток в сокете, а затем открыть поток в том же сокете?» ... но люди, похоже, отвечают на это: «Как мне аккуратно закрыть мой сокет?» ... вопрос не в этомспросил.
Ответ на поставленный вопрос - «нет».Когда вы закрываете поток, вы закрываете сокет.
(я понимаю, почему, по крайней мере, в одном случае, кто-то может задать этот вопрос. Когда вы передаете свойства Java через сокет принимающей сторонедолжен увидеть EOF, чтобы распознать конец свойств - для того, чтобы получатель увидел EOF, отправитель должен закрыть поток / сокет. НО, если у вас есть протокол команды / ответа, работающий над этим сокетом, вы НЕ хотите закрыватьили вы потеряете канал, на который хотите отправить ответ. См. Свойства потоковой передачи Java через сокет , чтобы узнать, как это сделать)