问题标签 [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.
java - Java 添加到列表
我正在尝试制作一个简单的 TCP 聊天程序,当用户发送消息“/list”时,我想从服务器回复所有在线用户的列表。
但是,即使我已经测试并知道 online_users 确实包含要添加到 userList.users 的值,命令 userList.users.addAll() 仍然会抛出错误。这是错误:
其中第 128 行是 userList.users.addAll(online_users.values()); 我希望能够简单地将 Map online_users 中的值集合添加到新的字符串列表中并将其发送出去。我不明白为什么会出现错误。
java - 在 kryonet 中,如何在不停止程序的情况下断开与服务器的连接?
我正在尝试制作一个简单的TCP
聊天程序,并且我希望用户能够启动该程序,然后能够输入ip
要连接的特定服务器,然后断开与该特定服务器的连接,然后再连接到另一个服务器。
我知道客户端一旦运行就已连接client.connect(timeout, ip, port)
,但我知道将客户端与服务器断开连接的唯一方法是退出程序。
有没有办法做到这一点?
java - Java System.out.println() 影响程序流程
我正在使用 KryoNet java 库和 slick 开发基于服务器/客户端的游戏。当服务器类接收到来自客户端的连接时,它会向客户端发送必要的启动信息,包括玩家编号。收到此消息后,客户端开始流畅并开始正常运行。代码是:
当从服务器接收到值时,playerNum 由另一个线程设置。有一段时间我无法让它工作(从未调用 cs.startSlick()),最终我感到沮丧并开始在每次循环运行时记录 playerNum。通过添加 System.out.println(cs.playerNum),代码开始工作,循环将正确评估并启动 slick。
System.out.println 怎么可能做到这一点?我尝试用其他函数替换它,甚至其他将 cs.playerNum 作为参数的函数,但只有当我专门打印 cs.playerNum 时,我才能让循环工作。如果我需要包含更多源,我可以,但问题似乎直接在这里,因为我尝试用其他函数替换 System.out.println 没有成功。
java - 发送对象时出现 Java Kryonet 错误
我正在使用 Kryonet 进行对象的 TCP 发送,尤其是一个名为 TransferMessage 的对象:
现在,我知道我必须打电话kryo.register(TransferMessage.class)
,但是当我尝试连接到注册了所有类的服务器时,我收到一个错误:
我不明白,因为虽然我注册的类使用 Color 类,但我以前从未注册过String
对象,所以我看不出这里有什么区别,我该如何解决这个错误?预先感谢您的帮助。
编辑:
这是一个最小的可重现代码,在序列化时显示错误Color
:
java - Kryonet - 缓冲区溢出 - 小对象发送
嗨。一切都在本地主机上运行没有问题。现在服务器设置在专业主机上。错误总是一样的:
代码很简单:
TestPacket 类只有一个字符串。当我通过模拟器连接时,一切正常。当我在三星 Galaxy S4 上打开它时,它会抛出这个异常。
已经尝试增加服务器和客户端构造函数中的缓冲区 - 没有用。
有任何想法吗?
android - Kryonet - 从相同的 IP 地址连接(不同的 LAN 地址)
假设我在德国有我的 TCP 服务器。
当我尝试从同一 LAN 网络中的两部波兰手机连接时(它们在这里有不同的 ip):
192.168.1.8 和 192.168.1.14
它断开以前的设备。它们都有相同的全局地址,我不知道这是怎么发生的,因为我只存储连接,而不是 InetAddresses:
最好的是,当我在同一台PC上打开两个模拟器时,它们都可以工作+我什至可以添加一部手机Oo
有任何想法吗?:(
java - java kryonet - ChatMessage - 类未注册
我刚开始使用kryonet。
从示例文件夹运行时,聊天示例运行良好。
如果我将聊天客户端、服务器和网络文件复制到 Eclipse 中的另一个源文件夹中,我会得到 IllegalArgumentException:未注册类:com.esotericsoftware.kryonet.examples.chat.Network$RegisterName(请参见下文)。
我在“kryo.register(ChatMessage.class);”周围添加了打印输出,所以我知道这是被调用的。
客户端挂起尝试连接。
任何指针将不胜感激。
谢谢
java - android客户端无法使用kryonet连接到PC服务器
我正在尝试创建一个简单的程序来使用 kryonet 库将数据从我的计算机发送到我的 android 应用程序。几乎没有任何关于如何为 android 创建工作客户端的文档。到目前为止,我认为我已经从谷歌搜索问题中收集了足够的信息以使其正常工作,但我仍然无法连接。堆栈跟踪告诉我“java.io.IOException:无法连接到:...”但我知道我的 ip 和端口工作正常,因为我已经使用 ssh 对其进行了测试。
客户端:
包类:
服务器端:
kryo - Kryonet - 双传入数据包
好的。我收到一次数据包,但它的块被触发了两次。例如:
我有一个这样的块:
在控制台(LOG_TRACE)中,我可以看到,数据包已收到一次,但“STARTTTTTTTTTTTTTTTTT”System.out 显示两次,倒计时显示两次等。
我不想发布整个代码,因为它庞大且难以理解。这可能是由于服务器上的缓冲区溢出引起的,或者可能是因为我在一台设备上同时打开了两个连接?如果有任何有 Kryonet 经验的人,我将不胜感激。
java - 如何在 kryonet 中注册 JavaFX 类?
我需要一些有关 Kryonet 库的帮助。我创建了一个服务器,其中包含一个用于注册我的课程的网络类。但我使用 JavaFX,我无法注册我需要的所有课程......
例如这项工作:
但是在 Kryonet 中,当我想发送一个 ImageView 时,Kryo 需要我注册所有 ImageView 的属性,比如 Node Orientation。我不能这样做,因为我收到了这个错误:
但 Node$EffectiveOrientationProperty 不是一个类。而仅仅注册 Node.class 对 Kryo 来说是不够的。
请问有人帮我吗?
谢谢你。我很抱歉我的英语不好。