客户端在GUI中有按钮,当客户端按下按钮时,两个ArrayList被发送到服务器。服务器如何将它们分开?如何发送一个列表我找到了这篇文章,但是如何在服务器上分离两个不同的ArrayList? Sending an ArrayList<String> from the server side to the client side over TCP using socket?
答案 0 :(得分:1)
使用ObjectOutputStream
和ObjectInputStream
时,他们会抽象协议,以便为您自动“分离”对象。
你只需要发送arraylists; .writeObject(Object o);
myObjectOutputStream.writeObject(myArrayList1);
myObjectOutputStream.writeObject(myArrayList2);
然后接受他们; readObject();
myArrayList1 = (ArrayList<String>)myObjectInputStream.readObject();
myArrayList2 = (ArrayList<String>)myObjectInputStream.readObject();
请确保您按照发送顺序阅读它们。
作为一方不是,如果您正在向流中写入更新的对象,请务必在ObjectOutputStream
上调用.reset()
,因为它具有某种形式的缓存以保存它重新发送已经存在的对象已被写入流中。