networking - KryoNet 中的缓冲区溢出试图接收对象图
问题描述
我正在发送一个包含 2X45x45 大 3 维数组的对象。在每个插槽中,都有一个我也在 kryonet 中注册的自定义对象。它似乎发送得很好,但试图接收它我一直收到这个烦人的错误,
线程“客户端”com.esotericsoftware.kryonet.KryoNetException 中的异常:无法读取大于读取缓冲区的对象:com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:118) 的 com.esotericsoftware.kryonet.Client 的 12793。在 java.lang.Thread.run 的 com.esotericsoftware.kryonet.Client.run(Client.java:333) 的更新(Client.java:247)(未知来源)
我不完全确定我为什么得到它,但我尝试通过在它的构造函数中这样做来增加客户端的缓冲区大小,
client = new Client((20 * 1024), 2 * 1024);
不过,它似乎对我没有多大作用。我一直在尝试解决这个问题一段时间,这是我最后的手段。有谁知道发生了什么以及我该如何解决这个问题?
这也是我要发送以供参考的对象,但它确实不重要,因为它似乎发送正常:
public class MapDataPacket {
public String id;
public String name;
public Block[][][] map;
public MapDataPacket() {
}
}
解决方案
这有效:
client = new Client(1000000, 1000000);
推荐阅读
- arrays - 如何从数组的最后一个元素开始迭代循环并按顺序进行到下一个?(不倒车)
- java - 在 Spring Boot 中使用 RestClient 对 Rest API 页面进行反序列化
- java - 使用 Spring Boot 战争启动外部 Tom Cat 时出现错误“无法获取 jdbcUrl 的驱动程序实例”
- angular - 用户注销后 Angular Locked 用户名和密码输入
- c - 为什么条件 x!=15 被评估为真给出输出 1
- javascript - 减少Angular Material标签标签宽度的正确方法?
- git - 在现有的 aws 桩线中用 Git 替换 CodeCommit
- python - 如何拆分数据以在 python 中获得所需的输出?
- node.js - NestJs 合并 2 个 DTO 或最佳实践
- java - Java并发同步不起作用