2010-09-20 48 views

Respuesta

49

Una tubería es una secuencia de datos, generalmente datos que se leen desde un archivo o desde un socket de red. Se produce una tubería rota cuando esta tubería se cierra repentinamente desde el otro extremo. Para una mosca, esto podría ser si el archivo está montado en un disco o una red remota que se ha desconectado. Para un socket de red, podría ser si la red se desconecta o el proceso en el otro extremo falla.

En Java, no hay BrokenPipeException específicamente. Este tipo de error se encontrará envuelto en una excepción diferente, como SocketException o IOException.

+0

buena explicación, sí, que se envuelve en IOException, pero con este claro mensaje como "tubería rota", en el registro que va a obtener algo como esto: Causada por: java.io .IOException: Broken pipe – Forhad

4

La tubería es básicamente un canal de comunicación entre dos procesos. Entonces, un proceso escribe en el conducto mientras que el otro lee de él. Una excepción de tubería rota normalmente significa que un proceso está intentando leer o escribir datos de una tubería, mientras que el proceso en el otro extremo de la tubería ha muerto/se ha matado.

0

Creo que estás usando Java.net?

Si cerró la conexión, necesita abrir una nueva toma antes de poder enviar más datos.

o sus conexiones se han rechazado

+0

Si hubiera cerrado su propia conexión, habría "cerrado el socket". Si su intento de conexión hubiera fallado, ni siquiera habría obtenido un "zócalo". En ninguno de los casos habría tenido una "tubería rota". No hay evidencia en la pregunta si él está usando 'java.net' o no. – EJP

Cuestiones relacionadas