这是一个服务器与客户机进行信息交换的程序有一个Socket server连接到服务器,有一个输出流,一个输入流,一个是bout=new BufferedOutputStream(server.getOutputStream()),一个是object_in=new ObjectInputStream(server.getInputStream).还有一个文件流filein从本地读一个文件,通过bout写到网络中去,并传到服务器,然后服务器发回一个确认信息.
问题是服务器并不知道bout什么时候写完,这该怎么解决???flush不行,只有bout.close(),但这样又会把网络连接一起关闭,这样就不能接受到回来的信息了,我该怎么办???

解决方案 »

  1.   

    一般服务器端都是通过
    多线程技术来处理多连接
    这个问题没必要担心当数据发送完毕后,关闭连接,释放资源都是由jvm来完成
      

  2.   

    回复人: pateric(pateric) ( ) 信誉:96  2005-05-12 16:45:00  得分: 0  
     
     
       发送文件的时候,先把文件大小发送过去,服务端收完这么多字节,就返回。
      
     
    同意,http协议就是这么搞的
      

  3.   

    恩,这个主意不错,谢谢大家
    因为关闭输出流以后与服务器的连接也就断了,所以不能用close,只有用文件大小来判断了