我一直在努力幾天工作出什麼錯,改變的東西等,已無濟於事。Android遊戲與服務器/客戶端不工作使用kryonet
獲取在Android Studio中下面的錯誤,我的三星設備試圖調試客戶端時:
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:856)
我想它使用相同的Java版本,我註冊類完全相同。 客戶端:
Client client = new Client();
Kryo kryo = client.getKryo();
kryo.register(SomeRequest.class);
kryo.register(SomeResponse.class);
client.start();
try{
client.connect(5000, "10.0.0.4", 31055, 32055);
}catch (IOException e) {
throw new GdxRuntimeException(e);
}
SomeRequest request = new SomeRequest();
request.text = "Here is the request";
client.sendTCP(request);
client.addListener(new Listener() {
public void received (Connection connection, Object object) {
if (object instanceof SomeResponse) {
SomeResponse response = (SomeResponse)object;
System.out.println(response.text);
}
}
});
服務器端:
Server server = new Server();
Kryo kryo = server.getKryo();
kryo.register(SomeRequest.class);
kryo.register(SomeResponse.class);
server.start();
System.out.println("server started");
server.bind(31055, 32055);
server.addListener(new Listener(){
public void connected(Connection connection){
System.out.println("connect");
}
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);
}
}
});
}
類:
class SomeRequest{
public String text;
}
class SomeResponse {
public String text;
}
正如你可以看到它的非常基本的代碼,但連接是一場噩夢。 請幫忙!! 我在android工作室創建客戶端,並在Eclipse中創建服務器。這可能是問題的原因嗎?它是我能夠構想的唯一合乎邏輯的理由。 我該如何解決這個問題?
運行在同一個問題?你是如何創建服務器的?我剛剛在Eclipse中編寫了一個基本服務器,作爲一個Java應用程序,並嘗試通過在Android Studio中運行的LibGDX桌面運行來連接它。 – Madmenyo 2015-09-03 15:10:11