2010-09-20 3 views

ответ

49

Труба представляет собой поток данных, обычно данные считываются из файла или из сетевого сокета. Сломанная труба возникает, когда эта труба внезапно закрывается с другого конца. Для мух это может быть, если файл установлен на диск или удаленную сеть, которая отключена. Для сетевого сокета это может быть, если сеть отключена или процесс на другом конце сработает.

В Java нет BrokenPipeException конкретно. Этот тип ошибки будет найден в другом исключении, например SocketException или IOException.

+0

Nice объяснение, да, он обернут в IOException, но с этим ясным сообщением, как «Broken трубы», в журнале мы получим что-то вроде этого: Вызванный: java.io .IOException: Broken pipe – Forhad

4

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

0

Я думаю, что вы используете Java.net?

Если вы закрыли соединение, вам необходимо открыть новый разъем , прежде чем вы сможете отправить больше данных.

или ваши соединения будет отклонено

+0

Если бы он закрыл свою собственную связь, у него получилось бы «сокет закрыт». Если его попытка подключения потерпела неудачу, он бы даже не получил «Socket». В любом случае у него не было бы «сломанной трубы». Нет никаких доказательств в вопросе о том, использует ли он 'java.net.' – EJP