问题标签 [kryonet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
92 浏览

android - 注册用户?

我需要为我的游戏创建一个登录/注册系统,但我不知道这通常是如何完成的。我已经用 Kryonet 设置了一个可以工作的客户端/服务器系统,我可以在其中通过网络推送数据。任何用户都可以登录,但一旦他断开连接,一切都会丢失。最终我希望这与 Facebook 登录兼容,但目前没有必要。

0 投票
1 回答
340 浏览

java - Kryonet 在多次发送自定义对象后断开连接

我正在使用 KryoNet 学习一些网络知识,我遇到了一个问题,当我将对象从服务器发送到客户端时,它发送它就很好,我可以阅读它,但是当我再次发送它时,我得到了这个错误。

服务器:

客户:

我的课:

}

堆栈跟踪:

0 投票
2 回答
208 浏览

java - Kryonet 聊天 POC 超时问题

所以,我正在对 Kryonet 库进行一些试验,并开始我决定开发一个简单的聊天程序,允许从客户端(远程计算机)到服务器(本地计算机)进行通信。

一切似乎都正常,我能够从客户端接收消息到我的服务器。

但是有一个很烦人的问题:如果客户端在一段时间内没有发送任何数据包(这里的数据包是文本消息),他会被服务器断开连接,说他超时了。

我正在努力解决这个问题,我不知道如何解决这个问题......

以下是我的程序的来源(除了注释掉//all my imports以避免有大量的导入行......):

ChattyServer.java

NetworkListener.java(服务器端)

Packet.java(服务器和客户端通用)

ChattyClient.java

NetworkListener.java(客户端)

有人可以告诉我我做错了什么吗?即使客户端长时间空闲,我也想保持客户端和服务器之间的连接。

先感谢您 !

0 投票
0 回答
165 浏览

java - 我可以发送一个包含我在 kyronet 中创建的类的对象的 ArrayList 吗?(爪哇)

我的代码没有问题,我想知道 Kryonet 是否可以在 ArrayList 中发送自定义对象。比如我的游戏是MMORPG,有不同的地图。当客户端从服务器请求地图时,我希望返回的地图包在地图上包含玩家和实体的 ArrayList。那可能吗?

示例地图包:

如果这是不可能的,我将如何去做?

0 投票
1 回答
561 浏览

java - Kryonet,无法发送 BufferedImage

我仍在学习 Java,我搜索了 Kryonet 的 Javadoc,但没有找到任何问题的答案。

我正在向一个简单的聊天程序添加网络摄像头功能。

我目前正在尝试将我的网络摄像头拍摄的单帧传输到另一台计算机。

Kryonet 允许我发送“自制”数据包,所以制作了这个数据包:

Packet9WebcamFrame.java

在我的客户中,我必须注册这个数据包:

但后来我遇到了让我注册其他课程的错误:

所以,现在,当我的客户收到说“你好,我需要你给我发送一个网络摄像头帧”的数据包时,它会这样做:

之后我希望它会工作,但仍然是一个错误:

com.esotericsoftware.kryo.KryoException: java.nio.BufferOverflowException 序列化跟踪:bankdata (java.awt.image.DataBufferByte) dataBuffer (sun.awt.image.SunWritableRaster) 光栅 (java.awt.image.BufferedImage)

框架(com.jmr.monitor.packets.Packet9WebcamFrame)

在 com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:585) 在 com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213) 在 com.esotericsoftware.kryo.Kryo.writeObject (Kryo.java:504) 在 com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:564) 在 com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213) 在 com。 esotericsoftware.kryo.Kryo.writeObject(Kryo.java:504) 在 com.esotericsoftware.kryo.serializers.FieldSerializer$ObjectField.write(FieldSerializer.java:564) 在 com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer. java:213) 在 com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:504) 在 com.esotericsoftware.kryo.serializers。FieldSerializer$ObjectField.write(FieldSerializer.java:564) at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:213) at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:571) at com .esotericsoftware.kryonet.KryoSerialization.write(KryoSerialization.java:50) at com.esotericsoftware.kryonet.TcpConnection.send(TcpConnection.java:192) at com.esotericsoftware.kryonet.Connection.sendTCP(Connection.java:59) at com.jmr.monitor.PacketHandler.handlePacket4(PacketHandler.java:131) 在 com.jmr.monitor.Main$1.received(Main.java:93)KryoSerialization.write(KryoSerialization.java:50) at com.esotericsoftware.kryonet.TcpConnection.send(TcpConnection.java:192) at com.esotericsoftware.kryonet.Connection.sendTCP(Connection.java:59) at com.jmr.monitor .PacketHandler.handlePacket4(PacketHandler.java:131) 在 com.jmr.monitor.Main$1.received(Main.java:93)KryoSerialization.write(KryoSerialization.java:50) at com.esotericsoftware.kryonet.TcpConnection.send(TcpConnection.java:192) at com.esotericsoftware.kryonet.Connection.sendTCP(Connection.java:59) at com.jmr.monitor .PacketHandler.handlePacket4(PacketHandler.java:131) 在 com.jmr.monitor.Main$1.received(Main.java:93)

所以,这是一个 bufferOverflow 问题,我在客户端的构造函数中尝试了一些事情,例如增加缓冲区大小,但到目前为止没有运气。

关于如何解决这个烦人的问题的任何想法?

先感谢您。

问候,

阿兹德。

0 投票
1 回答
1263 浏览

android - 带有服务器/客户端的 Android 游戏无法使用 kryonet

几天来我一直在尝试找出问题所在,改变事物等,但无济于事。

尝试使用我的三星设备调试客户端时,在 android studio 中出现以下错误:

我认为它使用相同的 java 版本,并且我注册的类完全相同。客户端:

服务器端:

类:

正如你可以看到它非常基本的代码,但连接是一场噩梦。请帮忙!!我在 android studio 中创建客户端,在 eclipse 中创建服务器。这可能是问题的原因吗?这是我能够怀孕的唯一合乎逻辑的原因。我该如何解决?

0 投票
1 回答
1279 浏览

java - Kryonet 序列化错误

在有人试图告诉我这是重复之前,我已经尝试了解决方案以及我能找到的几乎所有其他答案。

我的项目在 IntelliJ 中构建良好,通过了我设置的所有测试,甚至在 IntelliJ 内部运行也很好,只要我尝试运行由 maven 构建的 JAR,我就会被打脸,但有几个例外。

代码指向的类:

根据我在通过命令提示符运行时看到的异常,问题出在第 31 行,即:

命令提示符中的堆栈跟踪如下:

如前所述,我使用 maven 构建此项目,我使用 maven-shade-plugin 将 kryonet 文件隐藏到我的 JAR 中。

这是我的 POM.xml:

0 投票
1 回答
808 浏览

java - 如何为 Array<> 编写序列化程序?

我不知道如何解决这个问题。Array<>我需要为在 libgdx 中找到的对象编写一个序列化程序。

这就是我通常的序列化完成的方式。在这里,我需要为PlayerDataPacket.

我发现了这个:https ://groups.google.com/forum/#!topic/kryonet-users/9z4Ix2JO7JA 但它似乎已经过时了,因为它找不到一些方法,而且它没有说明如何用Array<>.

0 投票
1 回答
106 浏览

java - 如何自动将所有嵌套的静态类作为参数传递给方法调用?

有没有办法在类中检索静态类数组Network(定义如下),并将每个类的属性传递class给方法调用的参数kryo.register

0 投票
1 回答
285 浏览

udp - Kryonet 连接 udp:无法分配请求的地址

我是服务器开发的新手。我正在尝试 Kryonent。我使用了一个服务器

和一个客户使用

我正在使用 IP 0.0.0.0 在同一台 Windows 笔记本电脑上测试客户端和服务器。发生异常:

我做错了什么?