0

客户端代码:

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();
        }

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

4

2 回答 2

3

如果我不得不猜测,那是因为在您的客户端中,您阻止in.readObject();等待服务器向您发送一些东西,因此永远不会刷新输出流,因此......没有任何东西被发送。

刷新输出流后将读取移动到。

于 2012-02-01T06:04:25.570 回答
1

尝试使用 writeObject 和 readObject 方法。还要将 Integer 而不是 int 写入流。在继续之前阅读这个非常好的讲座。

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

问候!

于 2012-02-01T06:07:33.060 回答