В настоящее время наше приложение использует сокеты входных и выходных потоков для связи. В конкретном примере он читает из потока ввода консоли и записывает в поток вывода сокета. Если вход сокета закрыт снаружи, но запись блокируется, выходной поток не может быть закрыт из-за зависания.
Поэтому я подумал об использовании некоторого опроса в цикле, где (консольный) входной поток опрашивается регулярно, чтобы определить, является ли он закрытым и, следовательно, закрыть выходной поток.
Согласно этой статье похоже, что мне нужно взять SocketChannel
s вместо inputtream и outputtream. Разъединены ли входные потоки и выходные потоки, чтобы я мог сначала попробовать его с SocketChannel
для входного потока и оставить код выходного потока как есть?