当前位置: 首页 > 工具软件 > KryoNet > 使用案例 >

java kryo register_Java Kryonet [类未注册例外]

西门飞星
2023-12-01

我发现这个API称为Kryonet。那么,我试图实现项目页面中提供的示例。但是,这并不成功。

服务器代码:

public class KryoTest {

public KryoTest() throws IOException {

Server server = new Server();

server.start();

server.bind(54555, 54777);

server.addListener(new Listener() {

public void received(Connection connection, Object object) {

if (object instanceof SomeRequest) {

SomeRequest request = (SomeRequest) object;

System.out.println(request.text);

SomeResponse response = new SomeResponse();

response.text = "Thanks!";

connection.sendTCP(response);

}

}

});

Kryo kryo = server.getKryo();

kryo.register(SomeRequest.class);

kryo.register(SomeResponse.class);

}

public static void main(String[] args) throws IOException {

new KryoTest();

}}客户代码:

public class Kryoclient {

public Kryoclient() throws IOException {

Client client = new Client();

client.start();

client.connect(5000,"192.168.1.4", 54555, 54777);

SomeRequest request = new SomeRequest();

request.text = "Here is the request!";

client.sendTCP(request);

Kryo kryo = client.getKryo();

kryo.register(SomeRequest.class);

kryo.register(SomeResponse.class);

}

public static void main(String[] args) throws IOException {

new Kryoclient();

}

}例外:

run:

00:00 INFO: Connecting: /192.168.1.4:54555/54777

00:00 INFO: [kryonet] Connection 1 connected: /192.168.1.4

Exception in thread "main" java.lang.IllegalArgumentException: Class is not registered: client.SomeRequest

at com.esotericsoftware.kryo.Kryo.getRegisteredClass(Kryo.java:319)

at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:374)

at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:484)

at com.esotericsoftware.kryonet.TcpConnection.send(TcpConnection.java:196)

at com.esotericsoftware.kryonet.Connection.sendTCP(Connection.java:68)

at client.Kryoclient.(Kryoclient.java:24)

at client.Kryoclient.main(Kryoclient.java:30)这段代码有什么问题?

 类似资料: