日期:2014-05-20  浏览次数:20694 次

关于java流的问题
客户端向服务器端通过socket建立连接,客户端向服务器端发送多段字符串(将字符串写入输出流发送),服务器每收到一段就给客户端返回一个消息。现在有个问题,请高手帮忙:
我在其中一个方法中依次发送3段字符串转成的输出流,并将服务器返回消息的输入流打印出来;在另一个方法中关闭流。主程序先调用前一个方法,后调用第二个方法,可是当第一段字符发送并收到服务器返回的消息后,程序就自动关闭了;如果在关闭流的方法执行前让主线程等待一秒钟则可以全部发送并接收返回的消息,这是为什么呢?


------解决方案--------------------
服务器返回了3条消息只是关闭流来不及显示
------解决方案--------------------
直接上你的代码
------解决方案--------------------
你是按照这样的顺序吗?
向服务器发送数据—>接受服务返回的值—>打印—>调用关闭流的方法
你的程序抛异常了吗?

上代码容易找到问题根源
------解决方案--------------------
因为Socket流有缓存啊,你发送后有flush()么