gpt4 book ai didi

java - 反序列化通过 ObjectOutpoutStream 发送的对象

转载 作者:可可西里 更新时间:2023-11-01 02:55:16 28 4
gpt4 key购买 nike

我在尝试通过 ObjectOutputStream 接收二维/String 数组时遇到问题。我发送数组的代码是:

String [][] sendable = new String [n][5];
ObjectOutputStream os = new ObjectOutputStream(socket.getOutputStream());
os.writeObject(sendable);

假设我的数组已用所有值初始化,我如何将接收到的数据解压缩回二维数组?我的第一个方法是这个,但它一直导致问题,因为我对 Java 和套接字编程还比较陌生。

ObjectInputStream ois =new ObjectInputStream(clientSocket.getInputStream());
String insa[][] = null;

try{
insa= (String[][]) ois.readObject();
} catch (ClassNotFoundException ex){
ex.printStackTrace();
}

System.out.println(insa[0][1]);

如何检索作为对象发送的二维数组?

最佳答案

  1. 您需要在两端构造 ObjectInputStream 之前构造 ObjectOutputStream。否则,对等点可能会在读取对象流 header 时出现死锁。

  2. 您需要在套接字的生命周期内构造一次流,而不是每次发送或接收一次。

关于java - 反序列化通过 ObjectOutpoutStream 发送的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com