MrPerfekt Ответов: 0

Java-kryonet-неверное количество байтов (осталось 1), используемых для десериализации объекта: null


Я смотрел и смотрел. Все говорят, чтобы просто убедиться, что мои пакеты зарегистрированы в правильном порядке, но они есть. Вот код:

Клиент:

Client client = new Client();
    client.start();
    try {
        client.connect(5000, "127.0.0.1", 54555, 54777);
    } catch (IOException e) {
        JOptionPane.showMessageDialog(null, "Connection failed.");
    }

    client.getKryo().register(packet.class);
    client.getKryo().register(connect.class);

    connect cnt = new connect();
    cnt.name = "ClientConnect";
    client.sendTCP(cnt);


Сервер:

Server server = new Server();
    server.start();
    server.bind(54555, 54777);
    System.out.println("Server started.");

    server.getKryo().register(packet.class);
    server.getKryo().register(connect.class);

    server.addListener(new Listener() {
        public void received (Connection connection, Object object) {
            if (object instanceof packet) {
                if (object instanceof connect) {
                    connect p1 = (connect) object;
                }
            }
        }
    });


Полный текст сообщения об ошибке:

00:00  INFO: Connecting: /127.0.0.1:54555/54777
Exception in thread "Client" com.esotericsoftware.kryonet.KryoNetException: Incorrect number of bytes (1 remaining) used to deserialize object: null
    at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:146)
    at com.esotericsoftware.kryonet.Client.update(Client.java:255)
    at com.esotericsoftware.kryonet.Client.run(Client.java:338)
00:00 ERROR: [kryonet] Error updating connection.
    at java.lang.Thread.run(Thread.java:745)
com.esotericsoftware.kryonet.KryoNetException: Incorrect number of bytes (1 remaining) used to deserialize object: null
    at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:146)
    at com.esotericsoftware.kryonet.Client.update(Client.java:255)
    at com.esotericsoftware.kryonet.Client.run(Client.java:338)
    at java.lang.Thread.run(Thread.java:745)


Что я уже пробовал:

Я убедился, что использую ту же IDE (Android Studio), пакеты регистрируются в том же порядке, и я использую тот же JDK. Я понятия не имею, почему это не сработает.

Richard MacCutchan

Скорее всего, вам нужно спросить людей, которые написали kryonet.

0 Ответов