用ObjectInputStream/ObjectOutputStream能传实现Serializable接口的对象,ResultSetMetaData十有八九是不行的。

解决方案 »

  1.   

    传Vector行:import java.io.*;
    import java.net.*;
    import java.util.Vector;
    public class TestSocketServer
    {
      ServerSocket mServerSocket = null;
      Socket       mSocket = null;
      DataInputStream   dis = null;
      DataOutputStream  dos = null;
      Vector mVector = null;
      public TestSocketServer()
      {
         try
         {
           mServerSocket = new ServerSocket(9009,15);
           mSocket = mServerSocket.accept();       dis = new DataInputStream(mSocket.getInputStream());
           ObjectInputStream ois = new ObjectInputStream(dis);
           mVector = (Vector)ois.readObject();
           for(int i = 0 ; i < mVector.size(); i ++)
           {
             System.out.println("输出:" + (String)mVector.elementAt(i));
           }
         }
         catch(Exception eSocket)
         {
         }
      }  public static void main(String [] args)
      {
        new TestSocketServer();
      }
    }
      

  2.   

    客户端
    import java.io.*;
    import java.net.*;
    import java.util.Vector;public class TestSocketClient
    {
      Socket       mSocket = null;
      DataInputStream   dis = null;
      DataOutputStream  dos = null;
      Vector mVector = new Vector(5,1);
      public TestSocketClient(String [] args)
      {     mVector.addElement("aa");
         mVector.addElement("bb");
         try
         {
           mSocket = new Socket("192.188.0.5",9009);       dos = new DataOutputStream(mSocket.getOutputStream());
           ObjectOutputStream oos = new ObjectOutputStream(dos);
           oos.writeObject(mVector);
         }
         catch(Exception eSocket)
         {
         }
      }   public static void main(String [] args)
      {    new TestSocketClient(args);
      }
    }
      

  3.   

    将ResultSet放入Vector中,可以传送!使Vector实现Serializable可序列化接口,然后使用ObjectOutputStream发送,使用ObjectInputStream接收。如果你使用数组传送会比较麻烦。我做过一个项目,但是是使用一个对数组扩展以后的类,但是使用起来不简单。
      

  4.   

    serializ 其实并不是那么好用, 真的要做的话, 还是自定义协议,
    直接传递数据.
      

  5.   

    当然可以传数组,SOCKET操作在连接后和IO操作没太大区别,witeObject(Object obj),将数组扔进去得了
      

  6.   

    我就是想传ResultMetaData
    谁给我一个好点的方法?
      

  7.   

    只要是serializable的对象都可以。
      

  8.   

    定义一个自己的类SerializableResultSetMetaData implements Serializable,在里面包括你想要的ResultSetMetaData的属性,然后传这个类的实例。
      

  9.   

    为什么不先把数据放到Vector或是它的子类(加上字段数等)中,它本身就实现Serializable接口,只要在另一端再读出来?