java - interfaz - ¿Cerrar el paso de entrada de un socket también cierra la conexión del socket?
sockets en java cliente servidor netbeans (1)
Sí, al cerrar la secuencia de entrada se cierra el socket. Debe usar el método shutdownInput en el socket para cerrar solo la secuencia de entrada :
//do sth with fromSocket ... and close it
socket.shutdownInput();
Entonces, todavía puede enviar a la toma de salida
//then write to socket again
toSocket.print("is socket connection still available?/r/n");
//close socket
socket.close();
En la API de Java,
Socket socket = serverSocket.accept();
BufferedReader fromSocket = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter toSocket = new PrintWriter(socket.getOutputStream());
//do sth with fromSocket ... and close it
fromSocket.close();
//then write to socket again
toSocket.print("is socket connection still available?/r/n");
//close socket
socket.close();
En el código anterior, después de cerrar el InputStream fromSocket, parece que la conexión del socket ya no está disponible: el cliente no recibirá el mensaje "¿Todavía está disponible la conexión del socket?". ¿Eso significa que el cierre de la salida de entrada de un zócalo también cierra el zócalo?