java - Kryonet 连接 ID 限制?

标签 java libgdx kryonet

我正在将 kryonet 用于我的 LibGDX 项目。每次客户端连接到服务器时,都会创建一个新的连接 ID。例如。客户端 1:ID 1。客户端 2:ID 2。

当客户端重新连接时,计数器继续,它似乎没有重用旧的 ID。例如。客户端 1 重新连接:ID 3。

kryonet 会在一段时间后重置计数器吗?或者有什么办法可以重置计数器吗?我担心我的服务器运行一段时间后会遇到问题。

最佳答案

我已经解决了我自己的问题,但如果有人感兴趣,我会将其留在这里。

我在查看 Kryonet 的源代码时发现了这个:

int id = nextConnectionID++;
if (nextConnectionID == -1) nextConnectionID = 1;

当该值达到最大值时,它会翻转到最小值。引用:https://stackoverflow.com/a/5131206/4697327 .

我想永远不会有问题。

编辑:当从未建立连接时,Kryonet 使用 -1 作为 ID。如果 nextConnectionID 计数到 32 位最大值,然后翻转到最小值并再次计数到 0,则它将在某个时刻传递 -1。对于一个连接来说这将是一个问题。 我还没有发现负 ID 的问题。

关于java - Kryonet 连接 ID 限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047311/

相关文章:

java - 对于相同的字节数组,数组等于返回 false

java - 是否有 Delphi 的 "with..do"Java 等效项?

java - 从另一个线程中的对象运行方法

java - 检查给定坐标的水平、垂直和对角线对

Android 和 LibGDX : create XML file in local storage

java - 编写RoboVM绑定(bind)

java - Box2d 箭头转换 - Java

android - 由于Kryonet中重复的类定义,因此无法编译项目

java - 我如何托管服务器以便人们可以找到它?

java - 命令([var] 类型)的作用是什么?