2010-09-20 56 views

回答

49

管道是數據流,通常是從文件或網絡套接字讀取數據。當管道從另一端突然關閉時發生斷管。對於這種情況,這可能是文件安裝在光盤或已斷開連接的遠程網絡上。對於網絡套接字,可能是網絡拔出或另一端的進程崩潰。

在Java中,沒有具體的BrokenPipeException。這種類型的錯誤將被包含在不同的例外中,例如SocketExceptionIOException

+0

尼斯解釋,是的,它被包裹在IOException異常,但這個明確的信息,如「破管道」,在日誌中我們會得到這樣的:產生的原因:java.io .IOException:斷開的管道 – Forhad 2017-02-09 11:57:12

4

管道基本上是兩個進程之間的通信通道。所以一個進程寫入管道,另一個進程讀取管道。 斷管異常通常意味着一個進程試圖從管道讀取或寫入數據,其中管道另一端的進程已經死亡/被終止。

0

我想你使用的是Java.net?

如果關閉了連接,則需要先打開新的套接字 ,然後才能發送更多數據。

或你的連接是被拒絕

+0

如果他關閉了自己的連接,他將會'關閉套接字'。如果他的連接嘗試失敗了,他甚至不會有'Socket'。在任何情況下,他都會得到'破管'。在問題中沒有證據表明他是否使用'java.net.' – EJP 2015-09-20 09:35:36