繁体   English   中英

确实关闭套接字也会关闭/刷新输入/输出流

[英]does close a socket will also close/flush the input/output stream

我有一个这样的程序,

Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();

...some read and write here...

socket.close;

该代码工作正常。 但是我不确定是否关闭插座,输入/输出是否关闭。 我也没有调用out.flush(),如何发送数据?

  1. 关闭套接字不会刷新输出流,但是会同时关闭流和套接字。
  2. 关闭输入流不会刷新输出流,但是会同时关闭流和套接字。
  3. 关闭输出流将刷新它并关闭流和套接字。

您应该关闭从套接字获得的最外面的OutputStream。 例如:

BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
DataOutputStream dos = new DataOutputStream(bos);

关闭“ dos”。 冲洗它,冲洗“ bos”,然后关闭所有东西。

JavaOutput中的FilterOutputStream记录了关闭时刷新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM