ObjectInputStream无法正常工作

时间:2018-06-30 13:28:42

标签: java javafx chat objectinputstream objectoutputstream

我在Java中有简单的聊天应用程序。客户端必须发送带有消息的对象,而服务器必须接收它并将其发送给所有客户端。 第一次运行时,但是当客户端更改对象的详细信息并再次尝试将其发送到服务器时,客户端中的所有内容都会更改,但是更改后服务器无法获取信息(所有信息都保留在服务器中而不更改)。 服务器中的这段代码:

class HandleAClient implements Runnable
    {
        private SocketModel socketModel;

        public HandleAClient(SocketModel socketModel) {
            this.socketModel = socketModel;

        }

        @Override
        public void run() {
            while (true)
            {
                try {

                    messageModel = (MessageModel) socketModel.getInputFromCLient().readObject();

                    System.out.println(messageModel.toStringUser());
                    tellEveryOne(messageModel);

                    Platform.runLater(()->{
                        if(messageModel.isAdmin())
                        {
                            ta_chat.appendText(messageModel.toStringAdmin()+"\n");

                        }
                        else
                        {
                            ta_chat.appendText(messageModel.toStringUser()+"\n");
                        }

                    });

                } catch (IOException e) {
                    e.printStackTrace();
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }

            }
        }
    }

此代码在客户端中

public void b_send_action() throws IOException {
    String msg = tf_chat.getText();
    messageModel.setUserMessage(msg);


    messageModel.setMessageTarget("chat");
    try {
        objectOutputStream.writeObject(messageModel);System.out.println(messageModel.getUserMessage());
        objectOutputStream.flush();

    } catch (IOException e) {
        e.printStackTrace();
    }
    tf_chat.clear();

}

0 个答案:

没有答案