KryoNet中的缓冲区溢出试图获取对象图

时间:2018-12-24 22:57:36

标签: networking kryo kryonet

我正在发送一个包含2X45x45大3维数组的对象。在每个插槽中,都有一个自定义对象,我也在kryonet中注册过。似乎发送得很好,但尝试重新接收它,却不断收到这个烦人的错误,

  

线程“客户端”中的异常com.esotericsoftware.kryonet.KryoNetException:无法读取大于读取缓冲区的对象:12793       在com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:118)       在com.esotericsoftware.kryonet.Client.update(Client.java:247)       在com.esotericsoftware.kryonet.Client.run(Client.java:333)       在java.lang.Thread.run(未知来源)

我不确定为什么会得到它,但我尝试通过在客户端的构造函数中执行此操作来增加客户端的缓冲区大小,

client = new Client((20 * 1024), 2 * 1024);

虽然对我来说似乎做得并不多。我已经尝试解决了一段时间,这是我的最后选择。有谁知道发生了什么事以及如何解决这个问题?

这也是我要发送以供参考的对象,尽管它似乎可以正常发送,但实际上并不重要:

public class MapDataPacket {

    public String id;
    public String name;
    public Block[][][] map;

    public MapDataPacket() {

    }

}

1 个答案:

答案 0 :(得分:0)

这有效:

client = new Client(1000000, 1000000);