Переполнение буфера в KryoNet пытается получить граф объекта - PullRequest
0 голосов
/ 25 декабря 2018

Я отправляю объект, который содержит большой трехмерный массив размером 2х45х45.В каждом слоте есть пользовательский объект, который я также зарегистрировал в 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) на 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 голосов
/ 25 декабря 2018

Это сработало:

client = new Client(1000000, 1000000);
...