Puede alguien explicar el siguiente comportamiento en los zócalos de Java:Comportamiento de tomas de Java cuando se cierra flujo de salida
La idea general es la siguiente:
- socket abierto, obtener E/S arroyos.
- petición de escritura, cerrar corriente
- Respuesta de lectura, Cerrar en la corriente
- Cerrar zócalo.
Aquí está mi pregunta/problema.
Si utilizo un PrintWriter
para la salida, y luego lo cierro, cierra el socket completo, y la operación de lectura subsiguiente falla miserablemente.
En cambio, si utilizo directamente el método shutdownOutput()
del socket, cierra correctamente el canal de la corriente de salida, mientras mantiene activo el socket.
¿Por qué el objeto PrintWriter
se llevaría todo el zócalo?
Puede ser que necesite enjuagar antes de cerrar. –
¿Ha intentado enjuagar con .flush() en sus conexiones antes de cerrar su impresora para ver si el problema no ocurre? – vcetinick