我有一个这样的程序,
Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
...some read and write here...
socket.close;
代码工作正常。但是,如果我关闭插座,我不确定输入/输出是否接近。另外我没有调用out.flush(),数据将如何发送出来?
答案 0 :(得分:2)
您应该关闭围绕从套接字获取的最外面的OutputStream。例如:
BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
DataOutputStream dos = new DataOutputStream(bos);
关闭'dos'。冲洗它,刷新'bos',然后关闭所有东西。
关闭时刷新记录在FilterOutputStream的Javadoc中。
答案 1 :(得分:0)