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

急!!!!!!!!急!!!!!!!!急!!!!!!!! I/O输入输出流问题!!!!跪求高手帮忙!!
我做了一个C/S管理系统
1)用户把查询语句通过Socket
  String   strSQL= "select   *   from   meeting   ";
  DataOutputStream   out=new   DataOutputStream(mSocket.getOutputStream());
                              out.writeUTF(strSQL);
                                  out.flush();
                                                            out.close();
传递给数据库服务器


当服务器端口(mSocket)接受到客户的请求便激活以下一个线程
class   Server_rankFind   extends   Thread
    {  
2)数据库接受此查询语句
  DataInputStream     in=new   DataInputStream(mSocket.getInputStream());
        String   strSQL=in.readUTF();
              in.close();
                                        Resultset   rs   =   数据库执行(strSQL);
3)数据库执行查询后把放在Vector里的查询集(Resultset   rs)通过Socket传递给客户端,以便客户在JTable里显示,语句如下
DataOutputStream   dos   =     new   DataOutputStream(mSocket.getOutputStream());  
      ObjectOutputStream       oos       =       new       ObjectOutputStream(dos);  
                              oos.writeObject(   mVector);
                                            oos.flush();
}
4)客户接受服务器查询结果(readObject())并在JTable   里显示

问题就出在第三步!!!!!

Vector里已经放好查询数据了,但是就是传不出去(服务器接受客户查询语句却正常),

堵在那了,难道是这两个流在这个端口有相互干涉??还是有其他原因??

我把第一步     第二步去掉,直接在服务器的执行语句里设置    
String   strSQL= "select   *   from   meeting   ";却能在客户的JTable里把查询集正常显示!!!!!

请各位高手帮帮忙!!!!
急死了~~~


------解决方案--------------------
ResultSet传过去也没用
它是在真正取数据时才去向数据库要数据的
应该将数据一条一条的取出然后传给客户端
------解决方案--------------------
我想你前面的out和in是不是先不要关掉,等第三步完了之后再关掉?