server side code:
SSLSocket socket = (SSLSocket) ssf.getServersocket().accept();
BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
boolean done=false;
while (!done) {
String line=reader.readLine();
if (line!=null) System.out.println(line);
else done=true;
}
writer.write("Acknowledgment!");
writer.flush();
writer.close();
writer = null;
The code above throws a following exception:
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.e(DashoA12275)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA12275)
at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)
at sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404)
at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)
at java.io.BufferedWriter.flush(BufferedWriter.java:230)
at formis.openssl.SSLReceiverEngine$ReceiverRunner.run(SSLReceiverEngine.java:104)
at java.lang.Thread.run(Thread.java:534)
after I receive message from client and then would like to send back an acknowledge, but the latter throws
an exception when write the string to outputstream....i can make sure that i do not write any code to close the connection on the client side. any solution to this?