ObjectInputStream 未初始化



我的ObjectInputStream有问题。我想通过它发送对象,但程序在我想初始化ObjectInputStream的地方停止了。我已经搜索了responsed,发现在初始化ObjectInputStream之前,需要打开ObjectOutputstream。但这是毫无防备的。

我的客户端类代码:

socket = new Socket(InetAddress.getByName(server).getHostAddress(), 13340);
        messages = new Scanner(socket.getInputStream());
        p = new PrintStream(socket.getOutputStream());
        ObjectOutputStream o = new ObjectOutputStream(socket.getOutputStream());
        p.println("addServerContent");
        o.flush();
        System.out.println("1");
        o.writeObject(String.valueOf(index));
        o.writeObject(s);

这是服务器的一部分:

}else if(what.equals("addServerContent")){
        ObjectInputStream i = null;
        try{
            i = new ObjectInputStream(s.getInputStream());
        }catch(IOException e){}
        while(GxMS2.ListUsed){
            try {
                Thread.sleep(10);
            } catch (InterruptedException ex) {}
        }
        try{
            System.out.println("1");
            int index = Integer.parseInt((String)i.readObject());
            ServerContent sc = (ServerContent)i.readObject();

在服务器上,它甚至没有达到"1"标记。

为什么它不起作用?

感谢

不能将字符流与对象流组合,因此要么用PrintWriter包装OutputStream,要么用ObjectOutputStream包装,但不能同时包装两者。

相关内容

  • 没有找到相关文章

最新更新