如题目
用socket传一个串行化的对象,还有服务器端怎么接受这个对象?

解决方案 »

  1.   

    import java.net.*;
    import java.io.*;
    import java.util.*;public class ObjectClient{
        Socket socket=null;
        DataInputStream inStream=null;
        DataOutputStream outStream=null;
        FileOutputStream fout = null;    public ObjectClient() {
            try{
                System.out.println("connection request...");
                socket=new Socket("192.168.0.173",7650);
                System.out.println("connection OK");
                ObjectInputStream oin = new ObjectInputStream(socket.getInputStream());
                System.out.println("get stream...");
                //socket.setSoTimeout(3000);
                Vector vector = (Vector)oin.readObject();
                int size = vector.size();
                System.out.println("大小 :"+vector.size());
                for(int i=0;i<size;i++)
                {
                    ObjectObj obj = (ObjectObj)vector.get(i);
                    System.out.println("id="+obj.getID()+"");
                    System.out.println("name="+obj.getName());            }
                oin.close();
                socket.close();        }catch(Exception e){
                e.printStackTrace();
            }
        }    public static void main(String[] args) {
            ObjectClient socketClient1 = new ObjectClient();
        }
    }
      

  2.   

    import java.io.*;
    import java.net.*;
    import java.net.ServerSocket;
    import java.util.Vector;public class ObjectServer {
        ServerSocket ss=null;
        Socket s=null;
        ObjectInputStream inStream=null;
        ObjectOutputStream outStream=null;
        FileInputStream fin = null;
        ObjectObj obj = null;
        Vector vector = new Vector(2);    public ObjectServer() {
            try{
                ss=new ServerSocket(7650);
                //   s.setSoTimeout(3000);
                obj = new ObjectObj();
                obj.setID(1);
                obj.setName("wukesong");
                vector.add(obj);
                ObjectObj obj2 = new ObjectObj();
                obj2.setID(5);
                obj2.setName("asdfasdfasd");
                vector.add(obj2);
            }catch(Exception e){
                e.printStackTrace();
            }
        }    void waitForClient(){
            try{
                while(true){
                    s=ss.accept();
                    System.out.println("已经连接");
                    outStream=new ObjectOutputStream(s.getOutputStream());
                    this.inStream = new ObjectInputStream(s.getInputStream());
                    System.out.println("已经连接2");
                    outStream.writeObject(vector);
                    outStream.flush();
                    Thread.sleep(1000);            }
            }catch(Exception e){
                e.printStackTrace();
            }
        }    public static void main(String[] args)
        {
            ObjectServer socketServer1 = new ObjectServer();
            socketServer1.waitForClient();
        }
    }
      

  3.   

    这个帖子我怎么运行不成功啊。客户端输入get stream后就没有反应了,这是怎么回事啊???