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