繁体   English   中英

ObjectOutputStream不发送数据

[英]ObjectOutputStream not sending data

客户代码:

try {
            Socket socket = new Socket(ip, port);
            OutputStream output = socket.getOutputStream();
            ObjectOutputStream out = new ObjectOutputStream(output);
            InputStream input = socket.getInputStream();
            ObjectInputStream in = new ObjectInputStream(input);
            out.writeByte(1);
            FileHandler fh = (FileHandler) in.readObject();
            //processing stuff
            out.flush();
            out.close();
            output.flush();
            output.close();
            input.close();
            in.close();
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

服务器代码:

        try {
            ServerSocket server = new ServerSocket(port);
            Socket socket = server.accept();
            InputStream input = socket.getInputStream();
            ObjectInputStream in = new ObjectInputStream(input);
            int type = in.readByte();
            //processing stuff (which includes closing the streams and sending FileHandler object)
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

服务器从不接收该字节。 它只是等待来自客户端的字节,并且永远不会到来。 我不确定为什么它没有发送或接收。 任何帮助深表感谢。

如果我不得不猜测,是因为在您的客户端中,您阻止了in.readObject(); 等待服务器向您发送内容,因此永远不会刷新输出流,因此……什么也不会发送。

刷新输出流后,将读取内容移至。

尝试使用writeObject和readObject方法。 同时将Integer而不是int写入流中。 在继续进行之前,请先阅读此非常好的演讲

对于您的问题, 这也是一个很好的讲座

问候!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM