比如:
服务器端objout.writeObject("xyz")
客户端:objin.readObject();
可我怎么也调不通。

解决方案 »

  1.   

    String已经序列化了;
    objout.writeObject("xyz")
    objout.flush()
    上述语句应该可以保证流全部传送完毕。
      

  2.   

    可我的程序还是不行。
    但我用这两个类实现字符串的传送
    BufferedReader in = new BufferedReader(new InputStreamReader(Sock.getInputStream()));
    PrintWriter out = new PrintWriter(Sock.getOutputStream());
      

  3.   

    BufferedReader in = new BufferedReader(new InputStreamReader(Sock.getInputStream()));
    PrintWriter out = new PrintWriter(Sock.getOutputStream());
    标准的用法,我写socket流都这样;
    而objout.writeObject("xyz")
    objout.flush()//清空缓冲区,确保全部发送,不能缺少
      

  4.   

    client:
    ObjectInputStream objin = new ObjectInputStream(Sock.getInputStream());
    ObjectOutputStream objout = new ObjectOutputStream(Sock.getOutputStream());

    objout.writeObject("how are you!");
    objout.flush();
    while(true)
    {
    String line =(String) objin.readObject();
    if(line == null) break;
    System.out.println(line);
    }
    Sock.close();
      

  5.   

    server:
    ObjectInputStream objin = new ObjectInputStream(Sock.getInputStream());
    ObjectOutputStream objout = new ObjectOutputStream(Sock.getOutputStream());
    objout.writeObject("Welcome!";);
    objout.flush() ;
    while(true)
    {
    String line = (String) objin.readObject();
    if(line == null) break;
    objout.writeObject("Echo:" + line;);
    objout.flush() ;
    }
    sock.close();
      

  6.   

    ......//vv是一个装满数据的Vector类型
    outt = socket.getOutputStream();
    writer = new PrintWriter(new OutputStreamWriter(outt),true);
    writer.println(vv)这个流会自动序列化数组 全部传送成功但是你在另一端读出来的时候,要注意格式
    eg:Vector vv = new Vector();...
       Vector vi = new Vector();...
       vv.add(vi);...//接下来还有再加另一些Vector
    接受读出来的格式为:   
    [[..,..,..],[..,..,..],...]
      

  7.   

    我发现client在执行objout.writeObject("how are you!");时候就停住了,怎么回事?
      

  8.   

    你必须先声明ObjectOutputStream对象,再声明ObjectInputStream对象