- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
几天来我一直在努力找出问题所在,更改内容等,但都无济于事。
尝试使用我的三星设备调试客户端时,在 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 studio 中创建客户端,在 eclipse 中创建服务器。这可能是问题的原因吗?这是我能想到的唯一合乎逻辑的原因。我该如何解决?
最佳答案
我也有这个,它可能是由三件事引起的。
我实际上已经使用 Eclipse 构建了我的服务器,因为我不知道我可以使用 Android Studio 创建 Java 应用程序,而我正在使用它来构建我的客户端应用程序。这同时导致了版本差异,因为我在客户端使用 Gradle 以包含 KryoNet 并手动导入了我在 Eclipse 中可以找到的最接近的版本。
我在开发人员经常光顾的 LibGDX IRC channel 上获得了一些帮助。他们认为版本差异不会成为问题(但它可能)。他们说每当我构建客户端和服务器时,他们都应该使用相同的构建系统。这明显解决了很多不可预见的错误。
当我在 Android studio 中运行一个基本的 Java 项目时,我复制了代码,包括与 Gradle 中的客户端完全相同的 KryoNet 依赖项,一切都按预期工作。最重要的是,我喜欢 Android Studio,现在很高兴将它用于任何 Java 项目。
关于服务器/客户端无法使用 kryonet 运行的 Android 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26443398/
有在项目中使用过Java Kryonet库的 friend 愿意分享一下经验吗?我看到它被推荐过几次,但实际上没有看到任何人谈论他们使用它的经历。 具体来说,我想确保它可靠且相对稳定。或者我应该考虑使
我发现这个 API 名为 Kryonet 。好吧,我尝试实现项目页面中提供的示例。然而,它并不成功。 服务器代码: public class KryoTest { public KryoTest()
这似乎是一个很常见的问题,但即使在花费了大量时间进行故障排除后,我仍然无法找到解决方案。我希望有一个更新的解决方案。 我正在使用 KryoNet Java 网络库设置一个简单的服务器和客户端。我的问题
当我使用这条线路进行连接时,我的 Kryonet 服务器在 5000 毫秒后断开连接client.connect(5000, 主机, Network.port);我以为 5000 是连接超时,但当我运
在有人试图告诉我这是重复的之前,我已经尝试过 this 上的解决方案以及我能找到的几乎所有其他答案。 我的项目在 IntelliJ 中构建得很好,通过了我设置的所有测试,它甚至可以从 IntelliJ
我正在用 Java 编写一个图形在线程序,并使用 Kryonet 库来处理网络。 我相信这个库要求数据包是类的实例。我不确定这一点,但是没有找到任何其他建议的文档。 我对网络和内存效率有一点了解,但没
我正在使用 Kryonet 进行对象的 TCP 发送,特别是名为 TransferMessage 的对象: public static class TransferMessage{String tex
我正在使用 Slick2D 制作游戏并使用 Kryonet 进行多人游戏。我的架构的设置是为了让所有客户端都连接到服务器,该服务器本身并不玩游戏(而不是玩家在同一程序中运行客户端和服务器)。这是一款
我遇到 Kryonet 服务器在收到来自客户端的对象后崩溃的问题。服务器代码: package com.qookie.miner_server; import java.io.IOException;
所以我在测试我的网络时遇到问题,下面有很多代码,但这只是我可以做的一个例子。我遇到的问题是,当我发送消息时,我向服务器和客户端注册的监听器似乎永远不会被调用。 lock.await(5000, Tim
我的 kryonet 遇到客户端断开连接的问题。谁能帮我解决这个问题的根源是什么? 使用kryonet库,为了让客户端保持连接,它需要发送和接收KeepAlive数据包。客户端线程会自动处理此问题。但
我注意到 Kryonet 大约每 5 秒发送/接收一个我未向每个连接的成员注册的对象。它可能只是几个字节,即使对于几千个玩家来说,服务器负载也不会超过 1 kB/s,但我需要知道。 这是为什么? 这有
所以我正在尝试 kryonet,发送自定义数据包,但我的服务器中的监听器似乎无法接收它。 server.addListener(new Listener() { @Suppre
我正在使用 KryoNet 学习一些网络知识,我遇到了一个问题,当我将对象从服务器发送到客户端时,它发送得很好并且我可以读取它,但是当我再次发送它时,我收到此错误。 服务器: server = new
我正在尝试在 Android 应用程序中使用 Kryonet,但是当我在 Android 虚拟设备上尝试使用它时,甚至在我的 Android 手机上,我都会收到此错误: -Could not find
简单的问题,是否可以用 Kryonet 发送原始字节数组数据包?客户端不使用 Kryonet,将读取字节 谢谢 最佳答案 Kryonet 基于通过 NIO 的简单 tcp 通信以及内置的 kryo 序
我关注了this Youtube tutorial涵盖 Kryonet 的基础知识。 基本上它是一个 Kryonet Hello World,它解释了如何设置一个基本的服务器和一个客户端,允许客户端向
我尝试使用 Libgdx 库为 Android 平台开发游戏。对于网络,我使用 Kryonet 库。 当我确定我的应用程序已连接到我的服务器时,我想更换屏幕。 网络部分似乎可以工作,但线程有问题:执行
我正在尝试使用 Kryonet 库自学一些 Java 网络知识。下面的代码和kyronet教程中的代码几乎一模一样。 https://code.google.com/p/kryonet/#Runnin
我正在做一个小型 MMO 项目,现在我正在开发登录/注册系统。每当我尝试发送 ClientLoginPacket 时,客户端就会与服务器断开连接,并且服务器根本不会收到该数据包。没有显示堆栈跟踪,但这
我是一名优秀的程序员,十分优秀!