【问题标题】:Socket based PrintWriter doesn't flush, just after close()基于套接字的 PrintWriter 不会在 close() 之后刷新
【发布时间】:2012-06-05 06:29:18
【问题描述】:

我正在编写一个服务器-客户端应用程序。

问题是,在我关闭打印写入器之后,服务器中的PrintWriter 在某个时间点后不会刷新。但是如果我关闭打印编写器,它也会关闭套接字,但是我需要稍后使用它。

我该如何解决这个问题?

pw = new PrintStream(socket.getOutputStream());
pw.println("igyulibigyuli");
pw.flush();

它不刷新,只要我在刷新后关闭打印机。(或者如果我关闭程序!)

【问题讨论】:

  • 你在关闭flushPrintWriter之后尝试?
  • 不,我的意思是客户端在程序的某个时间点发生此问题之前成功获取数据。
  • 你可以直接调用flush()
  • 哦,我是白痴。问题是,在客户端,我只在有空值时才使用循环检查。当然,如果我关闭服务器上的套接字,客户端会出现关闭循环的异常,这就是为什么我认为打印器没有刷新。
  • 如果你发现你的问题,请取消问题:)

标签: java sockets flush printwriter


【解决方案1】:

问题是套接字正忙于读取(在一个while循环中,直到它不为空)。

【讨论】:

    猜你喜欢
    • 2014-08-10
    • 2017-04-02
    • 2012-08-04
    • 2011-02-24
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    相关资源
    最近更新 更多